前言
之前是把博客部署到了GitHub Page上的,但是使用一段时间后发现内网访问太慢,于是打算将该博客同时部署到GitHub Page和个人服务器上,将个人博客部署到GitHub Page教程可以参考本人之前的博客:Hexo搭建博客并部署到github上,本博客记录了个人服务器的部署流程;
服务器环境
ubuntu 18.04
git 2.17.1
nginx 1.14.0
步骤
安装git
1 | root@localhost:~# apt install git |
安装Nginx
1 | root@localhost:~# apt install nginx |
输入如下命令启动nginx,在浏览器中输入服务器公网地址即可查看nginx默认界面;
1 | root@localhost:~# service start nginx |
配置nginx
进入nginx的配置文件目录,打开default文件
1 | root@localhost:~# cd /etc/nginx/sites-available |
将root /var/www/html
修改为root /var/www/html/blog
,即设置本博客网站的根目录;
创建git用户
1 | root@localhost:~# adduser git |
赋予git用户权限,打开/etc/sudoers
文件
1 | root@localhost:~# chmod 740 /etc/sudoers |
找到如下内容
1 | ## Allow root to run any commands anywhere |
在下面添加一行内容
1 | git ALL=(ALL) ALL |
保存退出并改回权限
1 | root@localhost:~# chmod 400 /etc/sudoers |
设置SSH
切换为git用户,创建 ~/.ssh
文件夹和~/.ssh/authorized_keys
文件
1 | root@localhost:~# su git |
将本地用户目录下的.ssh
文件夹下的id_rsa.pub
文件里的内容复制到authorized_keys
中并赋予相应的权限
1 | git@localhost:~$ chmod 600 ~/.ssh/authorzied_keys |
此时,在本地客户端输入ssh -v git@服务器ip地址
即可进行ssh登录;
git仓库设置
创建git仓库目录
1 | root@localhost:~# mkdir /var/repo |
将repo目录及其子目录用户组设置为git
1 | root@localhost:~# chown -R git:git /var/repo/ |
同时将网站根目录的用户组设置为git
1 | root@localhost:~# chown -R git:git /var/www/html/blog |
git-hooks自动化部署博客
服务器建立裸库,使用git用户登录,确保git用户拥有仓库所有权
1 | root@localhost:~# su git |
使用git-hooks同步网站根目录,编辑/var/repo/blog.git/hooks
文件夹下的post-update
文件内容如下
1 |
|
保存后,赋予该文件可执行权限
1 | git@localhost:/var/repo/blog.git/hooks$ chmod +x post-update |
配置hexo根目录下的_config.yml文件
1 | deploy: |
测试
在本地客户端输入如下内容,进行测试部署
1 | hexo clean && hexo g -d |