Hexo本地安装与服务器部署教程

一、目标

完成本地开发环境的安装、服务器环境的部署

二、安装Nodejs

Node js 官网下载

参考文章:

史上最详细的Hexo博客搭建图文教程

通过Git将Hexo博客部署到服务器

1
我这里安装到:D:\programming\nodejs\

安装后,打开cmd查看node安装情况,执行如下命令

1
2
node -v
npm -v

配置全局环境

1
2
环境配置:新增环境变量NODE_PATH和添加Path,两个值都为
D:\programming\nodejs\node_global

进入安装目录,创建文件夹node_global和node_cache,执行如下命令

1
2
npm config set prefix "D:\programming\nodejs\node_global"
npm config set cache "D:\programming\nodejs\node_cache"

参考文章 : windows npm -g 全局安装的命令找不到

打开cmd,安装hexo-cli,分别执行如下命令

1
2
npm install hexo-cli -g
hexo

hexo命令出现提示,即安装成功!

如果出现命令未找到,或不是可执行程序,别着急!先仔细重复 3-4 步,一般是能够给解决的

如果实在是不能解决,往后看,如果没错,直接跳过该步

三、初始化hexo项目

1
2
hexo init myblog && cd myblog
npm install

安装主题 : 主题推荐

1
git clone https://github.com/iissnan/hexo-theme-next themes/next

在本地配置文件中设置theme属性为next

本地执行hexo项目

1
2
hexo g //生成文件
hexo s //开启服务容器

快可以打开 http://localhost:4000/ 验证效果吧

四、git环境搭建

Git官网下载

生成ssh认证,执行如下命令

1
2
3
4
git config --global user.name "yourname"
git config --global user.email youremail@example.com
ssh-keygen -t rsa -C "youremail@example.com"
git config --global core.autocrlf false

最后获取到的ssh认证在C:\Users\yourname.ssh中

五、服务器配置

搭建远程Git私库
登录到远程服务器,建议使用Xshell 5

安装 git,执行如下命令

1
2
3
git --version // 如无,则安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git

创建用户并配置其仓库,执行如下命令

1
2
3
4
5
6
7
8
9
useradd git
passwd git // 设置密码
su git // 这步很重要,不切换用户后面会很麻烦
cd /home/git/
mkdir -p projects/blog // 项目存在的真实目录
mkdir repos && cd repos
git init --bare blog.git // 创建一个裸露的仓库
cd blog.git/hooks
vi post-receive // 创建hook钩子函数,输入了内容如下(原理可以参考上面的链接)
1
2
#!/bin/sh
git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f

添加完毕后修改权限,执行如下命令

1
2
3
chmod +x post-receive
exit // 退出到 root 登录
chown -R git:git /home/git/repos/blog.git // 添加权限

测试git仓库是否可用,另找空白文件夹,执行如下命令

1
git clone git@server_ip:/home/git/repos/blog.git

如果能把空仓库拉下来,就说明 git 仓库搭建成功了!


建立ssh信任关系,在本地电脑,执行如下命令

1
2
ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip
ssh git@server_ip // 测试能否登录

注:此时的 ssh 登录 git 用户不需要密码!否则就有错,请仔细重复步骤 3-4

如果第 5 步能成功,为了安全起见禁用git用户的 shell 登录权限,从而只能用git clone,git push等登录,执行如下命令

1
2
3
4
cat /etc/shells // 查看`git-shell`是否在登录方式里面,有则跳过
which git-shell // 查看是否安装
vi /etc/shells
添加上2步显示出来的路劲,通常在 /usr/bin/git-shell

修改/etc/passwd中的权限,

1
2
3
4
5
6
7
8
9
vi /etc/passwd

将原来的

git:x:1000:1000::/home/git:/bin/bash

修改为

git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell

六、搭建nginx服务器

下载并安装nginx,执行如下命令

1
2
3
4
5
6
7
8
cd /usr/local/src
wget http://nginx.org/download/nginx-1.15.2.tar.gz
tar xzvf nginx-1.15.2.tar.gz
cd nginx-1.15.2
./configure // 如果后面还想要配置 SSL 协议,就执行后面一句!
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
make && make install
alias nginx='/usr/local/nginx/sbin/nginx' // 为nginx取别名,后面可直接用

配置nginx文件

1
2
3
先启动是否安装成功,执行如下命令

nginx // 直接来!浏览器查看 server_ip,默认是80端口

配置文件,执行如下命令

1
2
3
4
5
6
nginx -s stop // 先停止nginx
cd /usr/local/nginx/conf
vi nginx.conf
修改 root 解析路径为 /home/git/project/blog
同时将 user 改为 root,不然nginx无法访问 /home/git/project/blog
nginx -s reload

七、部署

至此我们就把本地和服务器的环境全部搭建完成,现在利用 hexo 配置文件进行链接

1
2
3
编辑_config.yml的deploy属性

repo : git@服务器ip:/home/git/repos/blog.git

在package.json中添加 npm 脚本

1
2
3
4
"scripts": {
"deploy": "hexo clean && hexo g -d",
"start": "hexo clean && hexo g && hexo s"
},

这下在本地调试就用

1
npm start

调试好了就部署到服务器

1
npm run deploy

美滋滋~快通过你的服务器ip访问吧

八、总结

本次教程介绍node环境配置,主要强调了全局模块的调用,然后是初始化 hexo 项目,建议多参考官方的配置。然后搭建本地和服务器的git环境,通过ssh通行证交互。接下来是通过nginx.conf文件来配置nginx。最后_config.yml的deploy参数来连接本地和服务器


参考文章:带你跳过各种坑,一次性把 Hexo 博客部署到自己的服务器

0%