之前是将博客部署在 GitHub Page 和 Gitee Page 上 , 部署的两套 Hexo 版本和主题均不相同 , 维护力度略大 . 现将 GitHub Page 的这套迁移到自己的服务器上.
服务器环境准备
安装 git 和 nginx
1
| yum install -y nginx git
|
添加 git 用户
1 2 3 4 5 6 7 8 9 10
| useradd git passwd git
# 给git用户配置sudo权限 chmod 740 /etc/sudoers vim /etc/sudoers # 找到root ALL=(ALL) ALL,在它下方加入一行 git ALL=(ALL) ALL
chmod 400 /etc/sudoers
|
给 git 用户添加 ssh 密钥
1 2 3 4 5 6
| su - git mkdir -p ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorzied_keys chmod 700 ~/.ssh vim ~/.ssh/authorized_keys #将ssh密钥粘贴进去
|
创建 git 仓库并使用 git-hooks 实现自动部署
1 2 3 4 5
| sudo mkdir -p /var/repo #新建目录,这是git仓库的位置 sudo mkdir -p /var/www/hexo cd /var/repo #转到git仓库的文件夹 sudo git init --bare blog.git #创建一个名叫blog的仓库 sudo vim /var/repo/blog.git/hooks/post-update
|
post-update
内容:
1 2
| #!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
|
给 post-update
授权
1 2 3 4
| cd /var/repo/blog.git/hooks/ sudo chown -R git:git /var/repo/ sudo chown -R git:git /var/www/hexo sudo chmod +x post-update #赋予其可执行权限
|
配置 nginx
1 2
| cd /etc/nginx/conf.d/ vim blog.conf
|
blog.conf
1 2 3 4 5 6
| server { listen 80 default_server; listen [::] default_server; server_name lhalcyon.com; root /var/www/hexo }
|
配置开机启动等
1 2 3 4 5 6 7 8
| # 设置开机启动 sudo systemctl enable nginx # 启动服务 sudo systemctl start nginx # 重启服务 sudo systemctl restart nginx # 重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载 sudo systemctl reload nginx
|
修改 git 用户的默认 shell 环境
1 2 3
| vim /etc/passwd #修改最后一行 #将/bin/bash修改为/usr/bin/git-shell
|
解析域名
略
本地环境准备
Git & Node & Npm
根据自身系统查找教程 , 略
安装 Hexo 及插件
1
| sudo npm install hexo-cli hexo-server hexo-deployer-git -g
|
本地初始化博客站点
1 2
| hexo init ~/blog npm install hexo-deployer-git --save
|
本地 Hexo 配置
1 2 3 4 5 6 7 8 9 10 11
| # 修改Hexo的deploy配置 cd blog vim _config.yml
# 找到deploy配置部分 # Deployment # deploy: type: git repo: root@xxx.xx.xxx.xxx:/var/repo/blog.git # IP填写自己服务器的IP即可 branch: master
|
部署 Hexo
1 2 3
| hexo clean hexo g hexo d
|
配置 SSL
这里可以参考下一篇文章 .
参考资料
参考链接