本文介绍了在腾讯云上部署博客的方法。
配置服务器安全策略
- 在腾讯云产品界面搜索并选择“安全组”
- 新建安全组
3, 添加入站规则
- 添加出站规则
- 实例应用安全策略
安装配置 Nginx
- 安装 Nginx
- 建立博客目录
- 添加
/root/hexo/index.html
用于检测配置 Nginx 是否成功
1 2 3 4 5 6 7 8 9 10
| <!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"> </head> <body> <p>Hello world!</p> </body> </html>
|
- 配置 Nginx 服务
1 2 3 4 5 6 7 8 9 10
| # /etc/nginx/nginx.conf user root; # 注意这里的用户要和博客目录的 owner 一致,否则会访问时会报 403 错误 ... server { listen 80 default_server; listen [::]:80 default_server; server_name www.zh0ngtian.tech; root /root/hexo; ... }
|
- 使用命令测试一下配置文件是否正确
1
| nginx -t /etc/nginx/nginx.conf
|
- 重启使设置生效
- 如果报错“nginx: [error] invalid PID number “” in “/run/nginx.pid””,执行如下命令:
1
| nginx -c /etc/nginx/nginx.conf
|
- 访问博客地址测试是否成功
配置 Git 仓库
如果将 Hexo 博客部署到 GitHub Pages,需要在本地生成 html 文件,然后 push 到 GitHub 的仓库,由 GitHub 的服务器完成渲染。在我们的方案中,我们自己的服务器就代替了 GitHub 的服务器,所以本地生成的 html 文件需要通过 git push 到云服务器相应的文件夹中。
- 新建 Git 裸库
裸库和普通的仓库不同,它没有工作区,只用来同步用的,可以用来存放本地推送上来的文件。新建命令如下:
1
| git init --bare hexo.git
|
注意这里的裸库的 owner 要和博客目录的 owner 一致,否则会在自动同步的时候遇到权限问题。
- 配置 Git hook
blog.git/hooks 中有很多 sample 结尾的文件,但是这些都是没有生效的。我们需要新建一个 post-receive 文件:
1
| vim hexo.git/hooks/post-receive
|
这个文件中的脚本会监听这个 Git 仓库的每一次 push 事件,push 到这个仓库一次,里面的脚本就执行一次,里面的内容如下:
1 2 3
| #!/bin/sh git --work-tree=/root/hexo --git-dir=/root/hexo.git checkout -f nginx -s reload
|
这个脚本的意思就是把 /root/hexo.git 这个仓库的分支同步到 /root/hexo 文件夹中,最后刷新 Nginx。
- 配置可执行权限:
1
| chmod +x hexo.git/hooks/post-receive
|
配置本地 _config.yml 文件
- 回到本机的博客路径下(就是完成 hexo init 的文件夹)修改 _config.yml 文件:
1 2 3
| deploy: type: git repo: root@zh0ngtian.tech:/root/hexo.git
|
这里如果设置了 ssh 免密登录服务器,这个 push 就也是免密的。
- 部署
完成前面的配置后,在本地的博客路径下执行 hexo d -g 就会将文件 push 到自己的云服务器中了。
参考
Hexo之我的个人博客改用自己服务器搭建
使用Hexo和Nginx搭建属于自己的博客