前两天闲来无事,买了个阿里云服务器玩玩,恰好发现此前放在github.io的博客网站经常被限流,日常登不上。于是就打算把现有内容迁移到服务器上,中间碰到的小坑记录一下。

服务器端设置
安装git与nginx
首先需要安装git以及nginx,因为阿里云服务器是CentOS,所以使用yum安装。
sudo yum install git
sudo yum install nginx
创建git仓库并使用hooks实现自动部署
cd /root
sudo git init --bare blogit.git #创建一个叫blogit的仓库
sudo vim /root/blogit.git/hooks/post-receive
请注意,hooks目录内部没有post-receive,需要我们vim创建并保存,之后在post-receive增加下面两行,表明在/root/blogit.git
对/opt/hexo
执行checkout -f
命令,当我们把博客写好后更新,服务器端可以同步部署。
#!/bin/sh
git --work-tree=/opt/hexo --git-dir=/root/blogit.git checkout -f
保存,给权限。
chmod +x /root/blogit.git/hooks/post-receive
修改nginx默认打开界面
找到nginx配置文件,地址在/etc/nginx/nginx.conf
。
sudo vim /etc/nginx/nginx.conf
注意root这个地方改为hexo博客所在路径,与上面的git-hooks一致。
重新载入nginx,使配置生效。
/bin/systemctl reload nginx.service
阿里云服务器更改配置
阿里云默认关闭了HTTP与HTTPS的公网访问,需要更改防火墙,进入云服务器的控制台的安全组,并点击实例。
需要访问规则做如下更改。
本地设置
打开Hexo博客根目录下的_config.yml
,将deploy
下面修改为:
deploy:
- type: git
repo: https://github.com/lxy-94/lxy-94.github.io.git
branch: master
- type: git
repo: root@服务器公网ip:/root/blogit.git
branch: master
本地执行以下命令
hexo clean
hexo g
hexo d
下次更新后直接hexo d
就可以同步到github与阿里云服务器。
哈哈,个人博客地址:我在云端跳舞,欢迎访问。