前言
常用的hexo都是使用github或者其他的代码托管平台, 如果你有一台自己的VPS,你想把hexo放到VPS上面, 可以使用hexo提供的其他的方法比如:Rsync,FTPSync等工具,甚至手动复制文件,我在尝试了这种方法之后, 发现并不好用,我已经习惯了放到github上面,我的方案是让VPS自己去github上面拉博客到自己的本地, 写一个定时脚本, 接下来就这么干
VPS安装配置git
VPS是ubuntu的系统, 接下来都是在root权限下的操作
安装git
1
apt-get install git
生成github的key
用你的github帐号生成key,最好是到.ssh文件夹下面执行下面的操作,如果在别的目录下执行, 生成的文件自己手动复制到.ssh下面好管理,如果没有.ssh文件,则手动建立一个1
2
3
4ssh-keygen -t rsa -C "your_email@youremail.com"
输入id_rsa
密码空, 回车
再回车key注册到github
使用sz id_rsa.pub, 将文件下到本地, 打开, 复制里面的内容到github- 配置全局github帐号
1
2git config --global user.name "Your Name"
git config --global user.email "your@email.com"
安装apache和nginx
1 | apt-get install apache2 |
首次git pull
建立/var/www/hexo文件夹, 从github拉取代码1
2
3
4
5
6cd /var/www
mkdir hexo
cd hexo
git init
git remote add origin git@github.com:XXXXX
git pull -u origin master:master
这样代码就拉下来了
apache+nginx部署hexo
apache设置
apache默认是监听的80端口, 我为了以后能监听多个端口, 不和nginx的80端口冲突,修改了监听的端口, 改成监听8888和9999
8888端口: 指向/var/www/html 这个是默认的路径
9999端口: 指向/var/www/hexo 我自己的hexo路径
我的apache版本是2.4.7
1.修改apaches.conf
设置路径1
2
3
4
5
6
7
8cd /etc/apache2
nano apache2.conf
#增加
<Directory /var/www/hexo/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
2.修改ports.conf
设置端口监听1
2
3
4
5
6
7
8
9
10
11
12
13cd /etc/apache2
nano ports.conf
#修改
Listen 9999
Listen 8888
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
3.修改000-default.conf
1 | cd /etc/apache2/sites-available |
配置nginx
1 | #删除默认的配置 |
启动和测试
启动apache2
1 | service apache restart |
启动nginx
1 | service nginx restart |
测试
浏览器中输入http://你的域名/
一个自动化脚本
我们在自己的电脑上写好了md, hexo d推送到github, VPS怎么去拉取github到本地
这里我想到写一个shell脚本, 每隔一段时间自动执行git pull操作1
2
3
4
5cd /var/www
mkdir git-pull.sh
mkdir git-pull.log
chmod -R 777 git-pull.sh
chmod -R 777 git-pull.log
脚本代码如下:1
2
3
4
5
6
7
8
9#!/bin/bash
echo '++++++++++++++++++++++++++'
datestr=`date '+%Y-%m-%d %H:%M:%S'`
echo 'date:'$datestr
dir=/var/www/hexo
cd $dir
git pull origin master
echo '++++++++++++++++++++++++++'
定时执行脚本
只用crontab来定期执行脚本
我这里使用每隔4个小时执行脚本(我个人觉得4个小时差不多了, 毕竟不是时时刻刻写博客)1
2
3
4crontab -e
# 可能让我们选择使用哪个编辑器编辑, 使用nano或者vim都可以
# 添加下面
0 */4 * * * /var/www/git-pull.sh >> /var/www/git-pull.log 2>&1