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