前几日,由于想自己搭建一个可以翻墙的服务器,便在DigitOcean上买了一个每个月5美元的最低配置版的装有Ubuntu系统的Droplets。如果是学生的话可以在github领学生包,里面有50美元的代金券,直接在github上搜索github student pack就能找到,代金券可以在DigitOcean上面使用。还有一种方法就是通过我的邀请链接在DigitOcean上面注册成功后就可以获得10美元,相当于可以免费用两个月。不过,在注册成功前,你必须先充值5美元以激活帐户,这5美元貌似可以申请退还,不过我没试过,毕竟自己会经常用服务器。
迅速搭建完成后,测试了一下,果然可以科学上网了。于是,又想搞点新鲜的玩意儿,毕竟服务器只用来翻墙貌似有点太浪费。于是就想着搭建一个自己的博客系统,闲来无事可以自己写写随笔,作作技术笔记,也算积累一下经验。
听室友说,Hexo用来搭建博客系统不错,于是便决定用它了。Hexo生成的是静态文件,所以可以在本地利用Hexo先生成静态文件,然后将这些静态文件通过git部署到服务器上,用Nginx做Web服务。由于hexo支持git的部署方式,所以可以实现从本地更新博客,非常方便。
搭建过程
本机操作
由于本机是windows,所以这里以windows为例。
- 安装Node.js和Git
- 生成SSH密钥(有就不用生成): - 1 - ssh-keygen -t rsa -C "email@example.com" # 一路回车 
- 创建一个文件夹作为博客网站的目录(例如: - E:\BLOG)
- 进入BLOG目录,执行如下命令初始化Hexo博客: - 1 
 2
 3- npm install -g hexo-cli 
 hexo init
 npm install
- 安装插件 - 1 
 2- npm install hexo-deployer-git --save 
 npm install hero-server
- 生成静态文件并启动hexo服务 - 1 
 2- hexo g 
 hexo s
- 打开浏览器输入http://localhost:4000 ,可看到第一篇博客,这只是本地博客。 
服务器操作
- 连接服务器:这里我用git bash连接 1 ssh root@<ip地址> 
- 在服务器上安装Git和Node.js以及Nginx 1 
 2
 3
 4sudo apt install git 
 sudo apt install nodejs
 sudo apt install npm
 sudo apt install nginx
- 配置Nginx托管目录 - 3.1. 创建 - /var/www/hexo目录,用于Nginx托管- 1 
 2
 3- mkdir -p /var/www/hexo 
 chown -R $USER:$USER /var/www/hexo
 chmod -R 755 /var/www/hexo- 3.2. 修改Nginx配置 - 1 
 2
 3- sudo vi /etc/nginx/sites-enabled/default 
 # 将 root /var/www/html 改为 root /var/www/hexo
 # 保存退出- 3.3. 重启nginx - 1 - nginx -s reload 
- 创建私有git仓库 - 4.1. 创建用户:git,用于运行git服务 - 1 - sudo adduser git - 4.2. 将本机的SSH公钥: - .ssh目录下的- id_rsa.pub内容添加到- /home/git/.ssh/authorized_keys文件中。- 4.3. 在 - /home/git下创建一个名为- hexo.git的裸仓库- 1 - git init --bare hexo.git - 4.4. 创建Git钩子,在满足条件情况下将静态文件传送到Web服务器目录,即 - /var/www/hexo- 1 - sudo vi /home/git/hexo.git/hooks/post-receive - 4.5. 添加如下代码 - 1 
 2
 git --work-tree=/var/www/hexo --git-dir=/home/git/hexo.git checkout -f- 4.6. 保存并退出,将该文件变为可执行文件 - 1 - sudo chmod +x /home/git/hexo.git/hooks/post-receive - 4.7. 将 - hexo.git目录和网站目录的所有者改为git用户- 1 
 2- sudo chown -R git:git /home/git/hexo.git 
 sudo chown -R git:git /var/www/hexo
至此,结束服务器端配置。
部署到服务端
- 在本机中修改hexo站点配置文件 - _config.yml- 1 
 2
 3
 4- deploy: 
 type: git
 repo: git@<服务器IP地址或域名>:/home/git/hexo.git
 branch: master
- 之后就能通过以下命令,完成博客的更新了。 - 1 - hexo d -g