博客搬家记

说起来我有维护几个静态站点(基于Hexo,包括本博客),之前是托管在coding.net上面的,但coding.net目前只有香港线路,且ping值不稳定,导致访问速度一般,所以一直想要找个机会好好整下,但没有好的方案。这不之前借着想要自己做网站赚点外快为由买了阿里云的主机,正好闲置着,想着不如就把这几个站点都迁移过去吧。

关于做网站,我的原则是尽可能的简单不折腾,因此,能够复用一些框架的地方直接复用,避免重复造轮子,因此,主机我选的阿里云的轻量应用主机(主要还是便宜,记得选香港),博客框架选的静态的hexo,主要是静态不容易出错,网站解析系统选的是apache,老牌稳定。虽然如此,搬家还是耗费了两天时间,搬家过程中的一些细节还是记录下,以备后查。

1. 选择系统镜像

因为是静态网站,所以选择最基础的网站运行框架就行,这里选择的是LAMP 6.1.0。

2. 配置Apache

因为涉及到多个站,所以要在一个apache上配置虚拟主机,按照域名配置虚拟主机的方法如下。

a.首先需要去httpd.conf文件中,去掉这句话的注释

1
Include conf/extra/httpd-vhosts.conf

b. 其次再去httpd-vhosts.conf添加多个域名和相应的文件夹

1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
# This first-listed virtual host is also the default for *:80
ServerName www.example.com
ServerAlias example.com www.example.com
DocumentRoot "/www/domain"
</VirtualHost>

<VirtualHost *:80>
ServerName other.example.com
DocumentRoot "/www/otherdomain"
</VirtualHost>

c. 创建相应的文件夹并部署网站

3. 将hexo部署到远程主机

推荐使用rsync方式,服务器安装:

1
2
3
apt-get install rsync
或者
yum install rsync

本地博客安装(需要对每个站单独安装):

1
npm install hexo-deployer-rsync --save

然后在博客文件夹目录下的 _config.yml,找到deploy添加如下代码:

1
2
3
4
5
6
deploy:
type: rsync
host: vps-ip # 这里填写你VPS的IP地址,比如:138.23.23.23
user: vps-user # 这里填写你登陆VPS所用的用户名,比如:root
root: /usr/www/blog # 这里填写你在nginx中配置的文件路径
port: 22 # SSH默认端口号,不需要修改

小技巧:如何在使用rsync(基于ssh)的时候不需要输入密码,可以将SSH公钥上传到Linux服务器(前提得先生成),使用ssh-copy-id命令来完成:ssh-copy-id username@remote-server

参考资料