Hexo | 你也可以动手搭建自己的博客系统
在简书坚持日更有20天了,蠢蠢欲动有想搭建自己的博客系统的想法了,正好自己之前购买了一台阿里云服务器,于是花了点时间来搭建下自己的博客系统。以后还是会坚持在简书上坚持日更,同时也会在自己的博客里写点文章。
选择哪一个博客系统
网上有很多这类文章,常见的有WordPress、Hexo、gost等等,又可以分为 动态系统 和 静态系统。
动态博客系统:后台有数据库,自由度更高,但维护会更复杂,比如gost。
静态博客系统:后台就是部署了静态的网页资源,加上一个静态web服务器,维护相对简单,比如Hexo。
究竟应该选择哪一个系统,应该看个人需要,系统折腾且有更多自由时间的可以选动态系统,否则就折腾静态的就ok了。没有太多的去做调研,只是看到网上说WordPress太臃肿了,而且很多人都已经弃用了;gost是动态系统,本人不想花大把时间在上面折腾,且本人的服务器资源也有限;就选择了Hexo这款静态的博客系统。
开始搞起
整个搭建分为两端,一端为 服务端,即需要在服务器上进行的安装和配置。我购买的阿里云服务器安装的centos7,因此本文以下的配置是基于centos7的;另一端为 本地端,即需要在自己的电脑上做的配置,以便将来在本地写作,然后更新到服务器上发布,就完成了一篇文章的整个创作过程。
服务端配置
1. 配置nginx
由于之前已经在服务器上折腾好nginx了,如何在centos上安装nginx这一块就不写了,网上随便一搜就能找到,也很简单。
修改nginx根路由,让其指向存放博客文件的目录,即修改nginx.conf文件,location / 中 root路径修改为/usr/share/nginx/html/blog;
。
2. 安装git服务器
安装git
# 安装git
yum install -y git
# 创建git用户并为其设置密码
adduser git #创建用户
passwd git #设置密码
#切换至git用户,添加SSH Key
su git #切换用户
mkdir ~/.ssh #创建目录
vim ~/.ssh/authorized_keys #将客户端git公钥写进去
# 为刚刚的文件和目录设置权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
把git用户添加到sudo用户组中
sudo vim /etc/sudoers,打开sudoers文件,输入/root进行搜索,搜索到代码行root ALL=(ALL) ALL,然后在这一行下添加以下代码git ALL=(ALL) ALL。输入完毕之后,按wq!强制保存退出vim。
在网站根目录新建一个blog文件夹,用于客户端上传文件,并且把该文件授权给git用户。代码如下:
# 使用sudo指令,需要输入git用户的密码
sudo mkdir -p /usr/share/nginx/html/blog
sudo chown -R git:git /usr/share/nginx/html/blog
初始化Git仓库
su git
cd ~
git init --bare blog.git #使用--bare参数,Git就会创建一个裸库。
配置git hooks,以便本地写好文章,通过git push到git服务器后能自动同步到nginx的静态目录下
vim ~/blog.git/hooks/post-receive
# 在post-receive中写入以下内容:
#!/bin/bash
git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f
# 赋予其执行权限
chmod +x ~/blog.git/hooks/post-receive
需要注意的是:配置hooks的时候,要注意post-receive中路径一定要和创建blog的目录路径一致,我就是在网上拷贝的路径不一致,导致后面在本地写好的文章push上来,在/usr/share/nginx/html/blog一直看不到文章,导致我还重新装源码安装了一遍git,在这里折腾了很久。将
git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f
直接拷贝到命令行里运行报的错是:git fatal: this operation must be run in a work tree
,所以,在配置好hooks后,可以先在命令行里运行下试试。
本地端配置
这里本地端使用的是windows10操作系统。
1. 安装nodejs
windows安装就很简单了,自行百度啦。
2. 配置git
首先要在windows上安装git客户端,然后生成公钥。客户端生成公钥方法如下:
cd ~/.ssh/
git config --global user.name “用户名”,
git config --global user.email “邮箱”,#分别配置用户名和邮箱,其中“用户名”可任意起,“邮箱”需为可用邮箱
# 再次输入命令:
ssh-keygen -t rsa -C # “刚刚输入的邮箱”,然后停顿处直接回车(总共3次)
生成的公钥文件为id_rsa.pub,将内容拷贝到服务器(切换到git用户)的~/.ssh/authorized_keys
文件中。
3. 安装Hexo
通过npm进行全局安装hexo框架:
npm install -g hexo-cli
选择一个目录存放你的博客文件,然后把Git Bash切换到那个目录。
接着,输入hexo init blog进行初始化hexo
初始化完毕之后,打开博客根目录的package.json文件,在dependencies的配置中,追加一项:"hexo-deployer-git": "^0.3.1"
返回Git Bash,先输入cd blog,在输入npm install进行包的安装
安装完包之后,接着在Git Bash输入:hexo s,然后在浏览器输入localhost:4000,就可以看到hexo已经搭建成功了。
将本地博客更新到服务器上
设置博客根目录下的_config.yml文件:
deploy:
type: git
repo: git@SERVER:/home/git/blog.git #此处的SERVER需改为你自己服务器的ip
branch: master #这里填写分支
message: #提交的信息
保存后,在博客根目录打开Git Bash,输入以下命令:
hexo clean
hexo g
hexo d
部署完毕之后,即可在浏览器输入你的服务器ip进行访问你的博客了。
Hexo
接下来的工作
到此博客系统就搭建完毕了。就像买了一个清水房一样,接下来要装修啊,要告诉别人你家的地址啊等等。因此接下来还需要开展以下几项工作:
- 注册域名,备案。将你的域名告诉别人去访问,而不是然人家去记住一个IP地址。
- 更换主题。找一个漂亮的主题,不要千篇一律地使用官方这个默认的主题了。
- 研究下Hexo写作。不要搭建了系统,还不知怎么写文章就尴尬了。