博客一直放在GitHub上面,今天放到了服务器上,记录了一下简单的流程。供大家参考!
hexo相关文章:
搭建流程
- 服务器环境配置,安装Git、Nginx配置、创建git用户
- 本地hexo初始化
- 使用Git自动部署并发布博客
服务器环境搭建
- 安装Git和NodeJS(Centos环境)
1 | yum install git |
- 创建git账号
1 | adduser git |
- 添加内容
找到
1 | ## Allow root to run any commands anywhere |
- 添加以下内容
1 | git ALL=(ALL) ALL |
- 保存退出并改回权限
1 | chmod 400 /etc/sudoers |
- 设置git账号密码
1 | sudo passwd git |
- 使用
su git
切换到git用户,再执行下列操作:
1 | # 切换到git用户目录 |
- 然后可以通过本地Git Bash执行ssh命令测试是否可以免密登录
1 | ssh -v git@服务器ip地址 |
这样git用户就添加好了。
- 安装Nginx
- 准备工作
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装
1 | yum install gcc-c++ |
Ubuntu系统安装命令如下:
1 | sudo apt-get install libpcre3 libpcre3-dev |
- 安装Nginx
安装之前,最好检查一下是否已经安装有nginx
1 | find -name nginx |
如果系统已经安装了nginx,那么就先卸载
1 | yum remove nginx |
然后开始安装
首先进入/usr/local
目录
1 | cd /usr/local |
从官网下载最新版的nginx
1 | wget -c https://nginx.org/download/nginx-1.14.2.tar.gz |
(注:版本号可更改,去官网查看最新版本号修改即可)
解压nginx压缩包
1 | tar -zxvf nginx-1.14.2.tar.gz |
会产生一个nginx-1.14.2 目录,这时进入nginx-1.14.2 目录
1 | cd nginx-1.14.2 |
接下来安装,使用–prefix参数指定nginx安装的目录,make、make install安装
1 | ./configure |
(默认安装在/usr/local/nginx,推荐使用默认设置)
1 | make |
1 | make install |
如果没有报错,顺利完成后,最好看一下nginx的安装目录
1 | whereis nginx |
(where和is要连这些,中间没有空格)
- 启动和停止nginx
1 | cd /usr/local/nginx/sbin/ |
查询nginx进程:
1 | ps aux | grep nginx |
- 重启 nginx
- 先停止再启动(推荐):
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
1 | ./nginx -s quit |
- 重新加载配置文件:
当 nginx 的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用 -s reload 不用先停止 nginx 再启动 nginx 即可将配置信息在 nginx 中生效,如下:
1 | ./nginx -s reload |
启动成功后,在浏览器可以看到如下页面:
- 开机自启动
即在rc.local增加启动代码就可以了。
1 | vim /etc/rc.local |
增加一行
1 | /usr/local/nginx/sbin/nginx |
到这里,nginx安装完毕,启动、停止、重启操作也都完成。
建立git裸库
1 | # 回到git目录 |
检查用户组权限
我们的git裸仓库已经建立好了,离成功又近了一步。为了以防万一,我们要检查一下之前的blog.git、.ssh、blog目录的用户组权限是否都为git:git
1 | # 还记得/var/www/吗?这是之前配置nginx时,我们自己选定的网站根目录,请依据你自己的设置更改,如果没有的话自己 |
如果有哪个不是,执行下面相应的命令后再查看
1 | sudo chown git:git -R /var/www/blog |
使用git-hooks同步网站根目录
简单来说,我们使用一个钩子文件:post-receive,每当git仓库接收到内容的时候,就会自动调用这个钩子,把内容同步到网站根目录。
在git用户下执行:
1 | # 新建一个post-receive文件并编辑 |
在里面输入以下内容,注意修改为自己的设置:
1 | #!/bin/bash |
保存退出后,进入/home/git/blog.git/hooks
执行:chmod +x post-receive
赋予这个文件可执行权限。
好了,以上就是服务器端需要配置的内容。我们还差最后一步就可以完成整个部署了!
修改配置文件nginx.conf
修改上面的配置文件:
1 | vim /usr/local/nginx/conf/nginx_config |
然后修改其中两个部分,如下所示:
然后重启nginx
,方法见nginx安装
部分。
配置本地Hexo的_config.yml
非常简单,只需要找到本地Hexo博客的站点配置文件_config.yml,找到以下内容并修改:
1 | deploy: |
保存后,剩下的就是Hexo的日常操作了,这里就不赘述了,写完文章后,在你的本地博客根目录执行以下命令:
1 | hexo c && hexo g -d |
就可以实现线上博客的自动更新了!一切搞定!
一些需要注意的地方
- vim: command not found
解决方法:安装vim
1 | yum -y install vim* |
- 设置防火墙
开启80端口,并重新启动防火墙