- 前提是有自己的服务器和域名。
- 如果没有服务器,也没有域名,建议使用 gitee 和 github 的 pages。
- 如果没有服务器,但是有已经备案的域名(备案时一定有服务器,这是备案前提条件,等备案下来后,通常情况下,服务器可以不用再续费),那么推荐使用 github 的 pages,可以绑定到自己的域名。
- 参考:github pages 绑定自己的域名
前提条件
- 在服务器上安装配置 git,请参考:CentOS 7.5 安装配置 git
- 在服务器上安装配置 node,请参考:CentOS 7.5 安装配置 Node
- 源码项目,以码云为例,配置好 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
19server {
listen 80;
server_name www.taobantech.com;
charset utf-8;
access_log logs/taobantech.access.log;
error_log logs/taobantech.error.log;
location / {
root /home/unginx/apps/elsafly/public;
index index.html;
}
}
# 以下为 301 跳转
server {
listen 80;
server_name taobantech.com www.saleonline.top saleonline.top;
rewrite ^(.*)$ http://www.taobantech.com$1 permanent;
}
关于 nginx 配置,请参考:CentOS7 安装 Nginx 并设置开机自启动