hexo是一个博客系统的模版,与Wordpress,Jekyll,zblog等等类似,可以让我们不用花费太多时间把博客系统搭建出来,使我们只专注于博客本身的内容即可。
hexo依赖的技术有node.js、nginx、git,所以本文作为基础,先讲讲怎么安装这三个软件(踩了不少坑,都是泪=VAV=),我的系统是centos7,阿里云买的主机。
注意,这里都采用的源码的方式进行安装,直接用yum安装的都不是最新的版本,尤其是安装node.js的时候,由于hexo不兼容10以前的nodejs版本,可把我坑得不浅。
本节目录:
一、安装git
二、安装nodejs
三、安装 Hexo
四、安装nginx
五、生成页面:
安装依赖库和编译工具:
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
下载 git 最新版本(可以进该网址自行选择版本):
cd /tmp && wget https://www.kernel.org/pub/software/scm/git/git-2.25.2.tar.gz
解压:
tar -zvxf git-2.25.2.tar.gz
编译:
cd git-2.25.2 && make all prefix=/usr/local/git
安装:
make install prefix=/usr/local/git
配置环境变量:
# 进入家目录
cd
# 我这里是root用户,与/etc/profile文件不一样,
# 该文件只改变当前用户的环境变量
vim .bash_profile
# 在该文件最后添加一行
export PATH=$PATH:/usr/local/git/bin
退出编辑后,使环境变量配置生效:
source .bash_profile
查看版本:
git version
配置用户名和邮箱:
git config --global user.name "github账号"
git config --global user.email "github邮箱"
查看配置信息:
git config -l
创建文件目录, 用于私人 Git 仓库搭建, 并更改目录读写权限:
(这个是仓库目录,可以根据自己的实际情况更改)
cd /usr/local/
mkdir hexoRepo
chmod 775 -R /usr/local/hexoRepo/
Git 初始化裸库:
cd hexoRepo/
git init --bare hexo.git
创建 Git 钩子(hook)
vim /usr/local/hexoRepo/hexo.git/hooks/post-receive
输入以下信息,用于指定 Git 的源代码 和 Git 配置文件。
前面为博客文件所在的目录,后者为仓库的目录
#!/bin/bash
git --work-tree=/usr/local/hexo --git-dir=/usr/local/hexoRepo/hexo.git checkout -f
保存并退出后, 给该文件添加可执行权限:
chmod +x /usr/local/hexoRepo/hexo.git/hooks/post-receive
安装hexo-deployer-git插件。在命令行(即Git Bash)运行以下命令即可:
npm install hexo-deployer-git --save
生成 ssh 密钥:
ssh-keygen -t rsa -C "你的 github 邮箱"
复制下面文件的内容,添加到 GitHub 的 SSH Key
/root/.ssh/id_rsa.pub
测试是否添加成功。在命令行(即Git Bash)依次输入以下命令,返回“You’ve successfully authenticated”即成功:
ssh -T [email protected]
修改_config.yml(在站点目录下)。文件末尾修改为:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: [email protected]:/usr/local/hexoRepo/hexo //用户名@域名或 IP 地址:/usr/local/hexoRepo/hexo
branch: master
下载 nodejs 最新版本:
cd /tmp && wget https://nodejs.org/dist/v12.16.0/node-v12.16.0-linux-x64.tar.xz
解压:
tar xvJf node-v12.16.0-linux-x64.tar.xz
将 /tmp/node-v12.16.0-linux-x64 文件夹移动到 /usr/local 目录下,并重命名为 node:
mv node-v12.16.0-linux-x64 /usr/local/node
配置环境变量:
# 进入家目录
cd
# 我这里是root用户,与/etc/profile文件不一样,
# 该文件只改变当前用户的环境变量
vim .bash_profile
# 在该文件最后添加一行
export PATH=/usr/local/node/bin:$PATH
退出编辑后,使环境变量配置生效:
source .bash_profile
查看 nodejs 和 npm 版本:
node -v
npm -v
三、安装 Hexo
设置 npm 源为淘宝源:
npm config set registry https://registry.npm.taobao.org
安装 hexo:
npm install -g hexo-cli
查看版本:
hexo -v
初始化 hexo:
cd 博客文件所在目录
hexo init
执行成功后安装两个插件:
npm install hexo-deployer-git --save
npm install hexo-server
生成 hexo 页面:
hexo g
四、安装nginx
安装依赖:
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
同样在 /tmp 目录下,下载 nginx 最新版本:
cd /tmp && wget http://nginx.org/download/nginx-1.16.1.tar.gz
解压:
tar -zxvf nginx-1.16.1.tar.gz
编译:
cd nginx-1.16.1 && ./configure
安装
make && make install
会自动在/usr/local/下生成nginx文件夹
修改nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
server {
listen 443 ssl;
# 修改域名或ip
server_name blog.tsund.cn;
# 修改ssl证书目录
ssl_certificate /data/ssl/blog_tsund_cn/chain.crt;
ssl_certificate_key /data/ssl/blog_tsund_cn/key.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
# 修改博客目录
location / {
root /usr/local/hexo/public;
index index.html index.htm;
}
}
配置环境变量:
# 进入家目录
cd
# 我这里是root用户,与/etc/profile文件不一样,
# 该文件只改变当前用户的环境变量
vim .bash_profile
# 在该文件最后添加一行
export PATH=/usr/local/nginx/bin:$PATH
退出编辑后,使环境变量配置生效:
source .bash_profile
重启nginx:
nginx -s reload
# 启动 nginx
nginx
# 关闭 nginx
nginx -s stop
hexo g
访问服务器ip可得到默认博客界面。
本文参考了下面的博客:
阿里云 CentOS 搭建 Hexo 详细教程
【持续更新】最全Hexo博客搭建+主题优化+插件配置+常用操作+错误分析
从零搭建Hexo博客并部署阿里云服务器(奶妈级教学)