又懒了好久没写博客…
最近忽然发现百度居然不会爬取部署在github上的博客文章,所以准备把原来的博客移到我自己的VPS上。
服务器信息:
- 国外的VPS - Vultr
- Linux - CentOS 7
关于国外VPS,推荐Vultr吧,我用的新加坡机房,速度还是挺快。还有原来用的搬瓦工也不错。
这里不讲NodeJs环境的配置了,网上教程很多。本文主要内容:
SSH免密码登陆Linux
服务器端:
CentOS 7 默认是已经启动了 ssh 服务的。可以通过如下命令查看 ssh 服务是否启动
1 | # systemctl status sshd.service |
本地客户端:
执行如下命令,生成公钥。
1 | $ ssh-keygen -t rsa |
然后执行如下命令,把生成的公钥发送到服务器上去。
1 | $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器地址 |
需要输入用户名密码,然后回车回车。。。就好了
成功之后,通过
1 | $ ssh root@服务器地址 |
无需密码就可以连接服务器了。
CentOS 7下安装Hexo
默认已经安装好 NodeJs 环境。安装 Hexo 只要以下三步。
1 | # hexo init <folder> // 初始化hexo目录,<folder>=文件夹名,不存在会创建该文件夹 |
CentOS 7下安装Git
1.安装 Git :
1 | # sudo yum install git |
2.创建一个 git 用户,用来运行 git 服务:
1 | # sudo adduser git |
3.初始化 Git 仓库,将其放在 /var/repo/blog.git
(或者其他任意目录)下的:
1 | # sudo mkdir /var/repo |
使用 --bare
参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。
4.配置 git hooks,这里使用 post-receive
的 hook,这个 hook 会在整个 git 操作过程完结以后被运行。
在 blog.git/hooks
目录下新建一个 post-receive 文件:
1 | # cd /var/repo/blog.git/hooks |
在 post-receive
文件中写入如下内容:
1 | #!/bin/sh |
注意,/var/www/hexo
要换成你自己的部署目录。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。
不要忘记设置这个文件的可执行权限:
1 | chmod +x post-receive |
5.改变 blog.git
目录的拥有者为 git 用户:
1 | # sudo chown -R git:git blog.git |
ok,到此服务器端配置完成。
实现本地Git方式部署网站到服务器
本地必须安装 hexo-deploy-git
模块
1 | $ npm install hexo-deployer-git --save |
然后修改根目录下的 _config.yml
1 | deploy: |
最后提交
1 | $ hexo clean |
Over.