将Hexo部署在自己的服务器上

发现博客不管是放在github上还是leanCloud访问都挺慢的。

所以参考了几篇网上的文章,记录一下自己部署的流程。

服务器配置

阿里云的Centos7服务器

安装Nginx和Git

1
yum install -y git nginx

Nginx是用来访问web项目

Git是用来托管文件

配置Nginx

编辑nginx的配置文件

1
`vim /etc/nginx/conf.d/blog.conf`

找到如下

1
2
3
4
5
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 你的IP或者域名;
root /data/www/hexo;

这里的/data/www/hexo。就是Nginx的web项目路径,会自动访问里面的index.html,然后修改server_name为域名或者ip

然后重启Nginx

1
systemctl restart nginx

配置Git

首先创建 /data/www/hexo目录,用于存放博客生成的静态文件

1
mkdir /data/www/hexo

然后创建/data/GitLibrary目录,用于托管项目文件。创建托管的git仓库

1
2
3
mkdir /data/GitLibrary
cd /data/GitLibrary
git init --bare hexo.git

然后创建每次Hooks脚本,post-receive脚本将在blog.git仓库接收到 push 时执行。

1
vim /data/GitLibrary/hexo.git/hooks/post-receive

内容添加为

1
2
rm -rf /data/www/hexo
git clone /data/GitLibrary/hexo.git /data/www/hexo

意思就是每次blog,git仓库接收到push的时候,会删除/data/www/hexo下的内容,然后克隆hexo.git的内容到/data/www/hexo下,就做到了更新操作。

配置安装hexo

请参考我的这篇文章

搭建好后,修改hexo根目录下的_config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13

url: 你的ip或者域名
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:



## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repository: root@(ip或者域名):/data/GitLibrary/hexo //用户名@域名或 IP 地址:/data/GitLibrary/hexo
branch: master

然后本地调用命令 hexo deploy就可以了。

使用你的ip或者域名访问你的博客吧。