The deployment of Hexo

2023-02-25 17:27:30 浏览数 (1)

Hexo介绍

Hexo的标签就是高效渲染 静态 简单,安装好后的后续文章的推送和页面的一些修改采用的是git方式的推送,通过密钥方式登录避免了每次推送更新都要输入密码的麻烦。安装过程主要分为服务器端的安装后本地客户端的安装,服务器端需要安装nginx git node.js,客户端的话是:git node.js hexo。

服务器端的部署

安装git

安装git之前需要先确认以下服务器是否已经安装了git,没有的话使用yum安装(是自己喜好的方式下载均可)

代码语言:javascript复制
git --version         // 查看是否安装git
yum install -y git    //安装git
git --version         //查看是否成功安装

添加git用户

代码语言:javascript复制
adduser git          //添加用户
passwd git           //设置密码
chmod 740 /etc/sudoers
vim /etc/sudoers     //给git添加sudo权限
chmod 400 /etc/sudoers

给git添加密钥

代码语言:javascript复制
su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys    //将ssh公钥复制进去,公钥的生成在客户端,这一步可以先空着

创建git仓库并使用hooks实现自动部署

代码语言:javascript复制
sudo mkdir -p /var/repo           //新建git仓库目录  
sudo mkdir -p /var/www/hexo  
cd /var/repo  
sudo git init --bare blog.git     //git仓库名称  
sudo vim /var/repo/blog.git/hooks/post-update  
	
# 给post-update授权 的内容如下  
	
cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/  
sudo chown -R git:git /var/www/hexo
sudo chmod  x post-update	

安装nginx

代码语言:javascript复制
yum install -y nginx  
nginx --version
# 我的服务器是centos,yum安装后的位置是:/etc/nginx/目录下,别的系统可能有差异,需要大家留心哦

nginx配置

代码语言:javascript复制
# 进入nginx配置文件  
vim /etc/nginx/nginx.conf
# 找到server字段,修改如下:
	
server {
listen    80;
server_name    tommonkey;
root    /var/www/hexo
}
	
# 配置完毕后,保存退出,测试是否成功
ngix -t               //测试nginx相关配置文件是否有问题,如果有报错,按报错提示修改
nginx -s reload       //重载nginx

修改git用户git的bash环境,防止攻击者通过git登录

代码语言:javascript复制
vim /etc/passwd         //进入passwd文件找到git用户所在行
# 修改其bash环境,将:
/bin/bash 改为:/usr/bin/git-shell  
# 保存退出即可
	
(tips:后面要将密钥添加到服务器端,还需要将bash给改回来......)
至此,服务器端的安装结束了!

客户端安装与配置

生成密钥

本地端(root主目录)生成密钥文件,并将公钥复制到上述提到过的文件中:

代码语言:javascript复制
ssh-keygen -t rsa -C "liudongdongder@****.***"         //填自己的邮箱地址。
# 生成后会弹出设置密码,这个直接回车不用管,直接回车。
# 可以看见执行命令后生成两个文件,一个密钥,一个公钥(.pub)。
# 我们要将.pub文件即公钥复制到服务器端的/.ssh/authorized_keys中保存即可

node.js安装

什么是npm? NPM (Node Package Manager,节点包管理器)是NodeJS的包管理器, 用于节点插件的管理(包括 安装 ,卸载和管理依赖等)。

代码语言:javascript复制
# 下载:node的官网:http://nodejs.cn/download/ 进去后选择自己合适的系统版本西复制下载链接使用wget下载
wget  https://npmmirror.com/mirrors/node/v16.13.0/node-v16.13.0-linux-x64.tar.xz
tar -xvf node-v12.14.1-linux-x64.tar.xz
# 创建文件夹,将解压文件移动到新建文件中
# 创建node和npm的软连接,如下,你们要看看自己的node路径,不要傻傻复制粘贴啊
ln -s /home/liudongdong/node/bin/node /usr/bin/node
ln -s /home/liudongdong/node/bin/npm  /usr/bin/npm
	
# 验证
node -v 
npm -v 
	
ln -s /home/liudongdong/node/bin/node /usr/bin/node
ln -s /home/liudongdong/node/bin/npm  /usr/bin/npm
验证:node --version, npm --version
	
# 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装Hexo及相关插件

代码语言:javascript复制
#使用命令下载Hexo及相关插件:
sudo npm install hexo-cli hexo-server hexo-deployer-git -g
	
#将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo <command>
ln -s /soft/hexo/nodejs/lib/node_modules/hexo-cli/bin/hexo /usr/local/bin/hexo
	
#比如我的hexo路径为:
/home/liudongdong/node/lib/node_modules/hexo-cli/bin
	
#这个路径要看自己的实际情况修改一下就可以了。输入Hexo验证是否成功。

初始化本地站点

代码语言:javascript复制
○ 创建一个站点目录blog:mkdir blog
○ 初始化站点目录:hexo init ~/blog
○ 进入博客目录:cd ~/blog
○ Npm install hexo-deployer-git --save

本地Hexo配置

代码语言:javascript复制
   # 进入创建hexo站点目录
   cd blog 
   vim _config.yml 
   # 找到deploy配置部分 
   # Deployment 
   # Docs: https://hexo.io/docs/deployment.html 
   deploy: 
       type: git 
       repo: git@xxx.xx.xxx.xxx:/var/repo/blog.git      # IP填写自己服务器的IP即可 
   branch: master
# 保存退出即可

本地Hexo代码部署到服务器(git推送)

代码语言:javascript复制
# 清除缓存 
hexo clean

# 生成静态页面 
hexo generate
	
# 将本地静态页面目录部署到云服务器 
hexo deploy
	
# 访问是否部署成功

修改服务器端Hexo的访问端口

Hexo的默认访问端口是4000,我们要把他改成80端口,如果服务器是部署在阿里云上,记得在阿里 云打开相关端口。

代码语言:javascript复制
# 服务器端改端口需要下载hexo server
# 使用npm前记得要软连接,跟客户端一样
npm install hexo server 
	
# 下载完毕后,进入node_modules/hexo-server/index.js下修改端口
vim index.js  
	
# 找到port: 4000,将其改为80,然后重启nginx.service即可
# nginx.service相关操作
systemctl start nginx.service
systemctl restart nginx.service
systemctl stop nginx.service
ps -ef |gerp nginx

over!

0 人点赞