• 前提是有自己的服务器和域名。
  • 如果没有服务器,也没有域名,建议使用 gitee 和 github 的 pages。
  • 如果没有服务器,但是有已经备案的域名(备案时一定有服务器,这是备案前提条件,等备案下来后,通常情况下,服务器可以不用再续费),那么推荐使用 github 的 pages,可以绑定到自己的域名。
  • 参考:github pages 绑定自己的域名

前提条件

  1. 在服务器上安装配置 git,请参考:CentOS 7.5 安装配置 git
  2. 在服务器上安装配置 node,请参考:CentOS 7.5 安装配置 Node
  3. 源码项目,以码云为例,配置好 ssh 公钥,请参考:CentOS 7.5 配置 git SSH key 免密获取 gitee.com 个人项目最新代码

发布

首先,全局安装 hexo

1
cnpm i hexo-cli -g

其次,安装依赖

项目 clone 下来之后,运行 cnpm i 安装依赖

从源码发布最新版本,脚本

要在服务器上自动部署博客,只需写好发布脚本,写定时执行脚本(crontab -e),即可达到代码提交(push)之后,博客自动更新发布的目的。
或者,在有更新的时候再手工执行该脚本即可。

发布脚本

1
[root@centOS7BasicForTest shell.script]# vi doc.tech.sh

添加以下内容

1
2
3
4
5
6
#!/bin/sh
source /etc/profile
cd /home/unginx/apps/doc.tech
git pull
#hexo clean #根据需要添加,建议不要这条命令
hexo g

定时执行发布脚本的脚本

以下,每分钟检查一次更新,如果有更新则编译发布。

1
2
[root@centOS7BasicForTest shell.script]# crontab -e
* * * * * /root/shell.script/doc.tech.sh

记得要在脚本 doc.tech.sh 的开头加上下面的脚本,否则不能正确执行脚本

1
2
#!/bin/sh
source /etc/profile

配置 blog 独立域名

以下以 nginx 为例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen 80;
server_name www.lovesofttech.com;
charset utf-8;
access_log logs/lovesofttech.access.log;
error_log logs/lovesofttech.error.log;

location / {
root /home/unginx/apps/elsafly/public;
index index.html;
}
}

# 以下为 301 跳转
server {
listen 80;
server_name lovesofttech.com www.saleonline.top saleonline.top;
rewrite ^(.*)$ http://www.lovesofttech.com$1 permanent;
}

关于 nginx 配置,请参考:CentOS7 安装 Nginx 并设置开机自启动