在Windows环境下安装Hexo搭建静态博客上传到独立空间

写在前面

最近打算开一个博客,试着自己维护一下属于自己的一片空间。之前纠结了很久,是应该用我熟悉的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的博客基本上就能用了。