博客地址:http://vultrace.cn,域名还在审批,就先用IP凑活凑活吧。
使用hexo框架搭建博客,网上已经有非常详细的文章,不过搭建的过程中还是遇到了一些问题和收获,觉得还是有必要记录以下,以方便大家参考。
参考文章:
hexo从零开始到搭建完整
Hexo搭建-部署服务器
服务器配置
在进行博客搭建时,使用的是阿里云的ECS,系统是阿里云定制的Linux系统,实际上就是CentOS。
nginx安装及配置
直接使用yum命令安装nginx服务器,并启动服务。
// 安装nginx
yum install -y nginx
// 启动nginx服务
systemctl start nginx
systemctl enable nginx
由于这台机器专门用于运行博客的,因此在进行nginx配置时,我的做法比较简单粗暴,直接更改/etc/nginx/nginx.conf
文件的server,将root更改为博客的存放目录。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /home/www/website;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
创建上面定义的博客的存放目录。
cd /home
mkdir www
cd /www
mkdir website
node环境安装
如果直接使用yum源安装node版本会比较老,印象中好像是6.几,直接下载编译好的源码进行安装: node下载地址,下载Linux Binaries (x64),由于使用WGET下载速度非常慢,建议在本地下载,然后通过DMS进行传输。
// 解压
xz -d node-vxxx-linux-x64.tar.xz
tar -xf node-vxxx-linux-x64.tar.xz
// 建立软链接
ln -s /opt/node-vxxx-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-vxxx-linux-x64/bin/npm /usr/bin/npm
// 测试
node -v
npm -v
安装GIT并配置仓库
// 安装GIT
yum install git
// 配置GIT用户
adduser git
// 修改用户权限
chmod 740 /etc/sudoers
vi /etc/sudoers
然后在root ALL=(ALL) ALL
用户的下方添加git ALL=(ALL) ALL
,保存并退出。
将sudoers文件权限改回chmod 400 /etc/sudoers
,并设置git用户的密码sudo passwd git
。
切换到git用户,然后在~目录下创建.ssh文件夹。
su git
cd ~
mkdir .ssh
cd .ssh
生成公钥密钥文件,啥都不要输入,直接enter就行,并复制id_rsa.pub公钥文件.
ssh-keygen
cp id_rsa.pub authorized_keys
修改权限并测试ssh连接功能。
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
// 本地测试
ssh -v git@xx.xx.xx.xx
创建一个git的仓库,并且新建一个post-receive文件,操作如下:
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive
输入以下内容,保存退出并授予该文件可执行权限。
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
chmod +x ~/blog.git/hooks/post-receive
错误提醒
完成以上配置后,在进行部署时,经常会出现如下错误。
remote: fatal: cannot create directory at '2019': Permission denied
并且部署目录/home/www/varcn/
里并没有推送的文件,出现这个问题可能是你的部署目录/home/www/varcn/
没有写权限导致的,添加写权限只能就可以了。
cd /home/www
chmod go+w website
本地环境配置
nodejs安装
本机环境为Mac,直接下载相关安装包进行安装,使用如下两个命令校验是否安装成功。
$ node -v
v14.3.0
$ npm -v
6.14.5
安装hexo
使用命令npm install hexo-cli -g
安装hexo,使用hexo -v
测试是否安装成功。
$ hexo -v
hexo: 4.2.1
hexo-cli: 3.1.0
os: Darwin 19.4.0 darwin x64
node: 14.3.0
v8: 8.1.307.31-node.33
uv: 1.37.0
zlib: 1.2.11
brotli: 1.0.7
ares: 1.16.0
modules: 83
nghttp2: 1.40.0
napi: 6
llhttp: 2.0.4
openssl: 1.1.1g
cldr: 37.0
icu: 67.1
tz: 2019c
unicode: 13.0
初始化博客
创建一个空文件夹用于存放博客的相关代码,cd
进入该文件夹,使用hexo init
初始化博客项目,博客项目包含以下几个文件。
- node_modules:是依赖包
- public:存放的是生成的页面
- scaffolds:命令生成文章等的模板
- source:用命令创建的各种文章
- themes:主题
- _config.yml:整个博客的配置
- db.json:source解析所得到的
- package.json:项目所需模块项目的配置信息
使用hexo server
命令运行博客,打开浏览器访问 http://localhost:4000 就能够看到博客运行的效果了。但是初始的博客其实非常简陋,需要配置相关的主题来让整个博客更加丰满。
主题配置
hexo包含非常丰富的主题,可以访问相关themes来选择自己喜欢的主题,我这里选择的是我个人比较喜欢的一个主题:snail。
进入上一步初始化完成后的博客目录,执行以下操作。
$ cd blog
$ rm -rf source
$ rm -rf scaffolds
$ rm _config.yml package.json README.md LICENSE
$ git clone https://github.com/dusign/hexo-theme-snail.git
$ mv ./hexo-theme-snail/snail ./themes
$ mv ./hexo-theme-snail/* ./
$ npm install
为方便博客字数的统计,需要安装WordCount。
npm install hexo-wordcount --save
在_config.yml文件中将theme更改该snail,默认情况下应该是已经更改好了。
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: snail