VPS搭建个人Hexo博客

Hexo是一个快速、简洁且高效的博客框架,具备速度快、支持Markdown、可扩展等特性,深受广大网友喜爱。网上有很多借助 GitHub搭建Hexo博客的教程,但利用VPS的缺比较少。为了特殊需求,本人一直使用VPS,但功能比较单一,感觉比较浪费,随产生搭建个人博客的想法。今天分享一下,如何使用VPS搭建个人Hexo博客。

准备工作

  • 拥有VPS,我使用的BWH家的,系统是CentOS。
  • SSH工具,能够远程连接VPS。
  • 域名。我是在Namechape购买的。

服务器环境搭建

通过SSH工具连接VPS,进行下属操作:

安装配置Nginx

安装Nginx

虽然大多数VPS系统都是linux系统,但不同的版本的linux下安装Nginx的方法也有所不同。我的是CentOS 7,以root帐号登录vpx服务器,运行以下命令:

1
2
3
$ yum install – y epel-release
$ yum install nginx
$ systemctl start nginx

默认Centos源中没有nginx,所以首先运行一句话添加源,然后运行第二句命令安装nginx,第三句命启动nginx服务。启动后可以通过命令systemctl status nginx查看状态,确认是否正常启动。此外,为了保证每次VPS重启后,能够自动运行nginx服务,运行

1
$ systemctl enable nginx

Nginx启动后,在浏览器中访问你VPS的IP地址进行确认,如无意外,可以看到Welcome to nginx页面。

配置Nginx

找到Nginx配置目录,备份conf配置文件并进行修改。

1
2
3
$ cd /etc/nginx/conf.d
$ cp default.conf default.conf.bak
$ vim default.conf

修改配置文件中的server_name部分,其它内容保持不变。网站内容默认存储目录为/usr/share/nginx/html

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
# 修改server_name为自己之前注册好的域名
server_name www.brucehan.top brucehan.top;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

...
}

Git发布功能配置

本博客在客户端撰写,发生后通过git发布到服务器段,并自动更新。

创建git用户

创建一个用户git,并根据提示设置密码,用来专门运行git服务,并赋予git用户sudo权限。

1
2
3
$ adduser git
$ chmod 740 /etc/sudoers
$ vim /etc/sudoers

找到以下内容:

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

在下面添加一行:git ALL=(ALL) ALL,保存。检查git用户权限确保git用户能够读写/usr/share/nginx/html目录。

1
2
3
$ ls -l /usr/share/nginx/
total 4
drwxrwxrwx 12 nginx git 4096 Jan 23 00:39 html

如果不是,需要修改权限。

1
$ sudo chown git:git -R /usr/share/nginx/html

建立git裸库

使用su git切换到用户git,再执行下列操作:

1
2
$ cd /home/git
$ git init --bare blog.git

git裸库建立好了,我们还需需要使用git-hooks同步网站目录。简单来说,我们使用一个钩子文件:post-receive,每当git仓库接收到内容时,就会自动调用这个钩子,把内容同步到网站根目录。

在git用户执行:

vim ~/blog.git/hooks/post-receive

即新建post-receive文件,并编辑:

1
2
3
4
5
6
7
8
9
#!/bin/bash
GIT_REPO=/home/git/blog.git
TMP_GIT_CLONE=/tmp/blog
PUBLIC_WWW=/usr/share/nginx/html
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

保存退出,并赋予其执行权限:chmod +x ~/blog.git/hooks/post-receive

配置SSH(可选)

客户端发布博客时通过SSH登录,避免每次输入密码。具体ssh配置,请参考相关文档。

本地搭建Hexo博客

本地搭建Hexo博客,具体可参考Hexo官网文档。安装Hexo很简单,但前提是需要先安装以下应用程序:

  • Node.js,版本需不低于8.10,建议使用Node.js10.0及以上版本

  • Git

安装Hexo

安装Node.js

Node.js 为大多数平台提供了官方的 安装程序。对于中国大陆地区用户,可以前往 淘宝 Node.js 镜像 下载。我本地操作系统是Manjaro Linux系统,很容易采用sudo pacman -Sy nodejs进行安装,其他的操作系统可以参考Node.js官网,下载相应软件进行安装。

  • Windows: 通过 nvs(推荐)或者nvm 安装.

  • Mac:使用Homebrew等方式进行安装

  • Linux:参考Node.js,下载相应版本继续安装。

Windows 用户 使用 Node.js 官方安装程序时,请确保勾选 Add to PATH 选项(默认已勾选)>

安装Git

Manjaro Linux系统安装后默认已经安装了Git。其他操作系统可以

  • Windows: 下载并安装git
  • Mac:使用Homebrew等方式进行安装
  • Linux(Ubuntu, Debian):sudo apt-get install git-core
  • Linux(Fedora, ReaHat, CentOS):sudo yum install git-core

安装Hexo

所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

1
$ npm install -g hexo-cli

建站

安装 Hexo 完成后,请执行init命令,Hexo 将会在指定文件夹中新建所需要的文件。因为我要建双语博客,所以我首先在自己的根目录下新建了一个名为Blog的文件夹,并在Blog文件下再新建一个名为Blog_cn的文件夹,用于存储中文博客。因此可以采用hexo init Bolg_cn命令进行初始化博客。

1
2
3
4
5
$ cd Blog
$ hexo init Blog_cn
$ cd Blog_cn
$ hexo g
$ hexo s

hexo g用于生成静态网页,hexo s打开本地服务器,然后浏览器打开localhost:4000就可以看到默认博客效果了。

默认Blog界面(借图)

安装相关插件

安装Hexo的categories生成插件,并生成categories页面:

1
2
$ npm install hexo-generator-category --save
$ hexo new page categories

安装Hexo的Tags生成插件

1
2
$ npm install hexo-generator-tag --save
$ hexo new page tags

安装Hexo的about生成插件

1
2
$ npm install hexo-generator-about --save
$ hexo new page about

配置本地Hexo

进入Blog_cn目录,修改站点配置文件config.yml,在文件最后添加:

1
2
3
4
deploy:
type: git
repo: git@你的服务器IP:/home/git/blog.git
branch: master

保存后,剩下的就是Hexo的日常操作了。

日常操作

发布新帖

1
$ hexo new "My New Post"

更多信息: 写作

运行服务

1
$ hexo server

运行服务后可以现在本地端查看效果,查看方法为浏览器打开localhost:4000就可以查看。更多信息: 服务器

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

参考网文

  1. 超详细Hexo+Github博客搭建小白教程
  2. VPS搭建个人Hexo博客
  3. Hexo官方文档