写在前面
最近打算开一个博客,试着自己维护一下属于自己的一片空间。之前纠结了很久,是应该用我熟悉的WordPress还是学习一下搭建一个静态博客,是应该用中文写还是应该用英文。本来觉得反正在墙外,也不可能回去备案,还不知道在墙内还能不能上我的博客,想继续用WordPress来着。
直到某天醒来,我知道了,我想用中文,我想要简单的记录我的想法。至于有没有人访问,需不需要翻墙根本不重要!
所以,hexo,我来了!
安装Node.js
我不是程序员,用的是Windows, 为了用hexo,需要先安装Node.js.
去Node.js的官网下载就行。我选的是LTS版本,就是有long term support的稳定版。默认傻瓜式安装就行
安装Hexo
1. 打开windows的cmd,执行代码:
npm install hexo-cli -g
就是安装hexo到Windows里。
2. 在cmd里进入你打算安放博客文件夹的目录下:
hexo init blog
cd blog
npm install
就是在当前目录下创建一个名为blog的文件夹,你的博客就放在这里面啦。
比如我就在我的ownCloud文件夹下(也可以在Dropbox、Google Drive之类的文件夹下)安装blog,这样即使我在不同的电脑上使用Hexo也没有关系,因为可以自动帮我把所有文件同步过去。
3. 运行Hexo
hexo server
应该能看到显示:
INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop.
说明安装成功了,这时候可以打开网页浏览器,进入 http://localhost:4000/ 看看:
我了个去,看起来挺不错的。
到这里为止,Hexo在Windows下的搭建就完成了。
配置与部署
1. 生成html文件
上传之前,需要先生成静态html文件:
hexo g
2. 通过FTPSync将网页文件同步到服务器
Hexo文档提供了几种不同的部署方式,其中最多人用的就是git,因为可以很方便地部署到github pages。
不过,由于我有自己的空间,还是放在自己的地盘上有归属感。所以这里就用FTPSync的方式同步到服务器。不过……
2.1. 小心!Hexo FTPSync 的坑出现了!!!
这里就引用一下踩坑道人的原话吧,也就是我遇到坑的时候看到的:
插件看上去特别”简单”,但工作原理肯定与你想的不一样,它是真的就是”同步”!是把ftp的服务端目录和文件调整成本地一模一样,也就是原来服务器上的文件如果本地没有话是会被删除,删除,删除(重要的事说三遍)掉的!而不是一般deploy只负责上传的理解.我去查了hexo-deploy-ftpsync插件,它使用的是node-ftpsync,人家的说明里明确说了:
This is not ftp-deploy. This application will delete files and directories on the remote server to match the local machine. Use this application in production at your own risk.
我在使用FTPSync的时候也像他一样遇到了要同步服务器的情况,不过好在我的服务器里文件太多了,导致运行FTPSync之后电脑一直在“collecting...”直到我反应过来……
所以,要使用FTPSync得确保本地文件是完整的。由于我本地的blog文件夹安装在ownCloud(类似Dropbox)下面,所以始终可以在不同电脑间保持同步,不用担心这个问题。
2.2. 安装FTPSync
命令行中输入:
npm install hexo-deployer-ftpsync --save
编辑blog下的配置文件_config.yml,在site的部分写上网站的信息,在deploy的部分修改ftp的信息:
deploy:
type: ftpsync
host: <host>
user: <user>
pass: <password>
remote: [remote]
port: [port]
ignore: [ignore]
connections: [connections]
verbose: [true|false]
然后就可以在命令行里执行部署了:
hexo deploy
当看到以下的信息就说明同步成功了:
INFO Deploy done: ftpsync
到这里,基于Hexo的博客基本上就能用了。