Hexo介绍
Hexo的标签就是高效渲染+静态+简单,安装好后的后续文章的推送和页面的一些修改采用的是git方式的推送,通过密钥方式登录避免了每次推送更新都要输入密码的麻烦。安装过程主要分为服务器端的安装后本地客户端的安装,服务器端需要安装nginx+git+node.js,客户端的话是:git+node.js+hexo。
服务器端的部署
安装git
安装git之前需要先确认以下服务器是否已经安装了git,没有的话使用yum安装(是自己喜好的方式下载均可)
1 2 3
| git --version // 查看是否安装git yum install -y git //安装git git --version //查看是否成功安装
|
添加git用户
1 2 3 4 5
| adduser git //添加用户 passwd git //设置密码 chmod 740 /etc/sudoers vim /etc/sudoers //给git添加sudo权限 chmod 400 /etc/sudoers
|
给git添加密钥
1 2 3 4 5 6
| su - git mkdir -p ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh vim ~/.ssh/authorized_keys //将ssh公钥复制进去,公钥的生成在客户端,这一步可以先空着
|
创建git仓库并使用hooks实现自动部署
1 2 3 4 5 6 7 8 9 10 11 12
| 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
1 2 3
| yum install -y nginx nginx --version # 我的服务器是centos,yum安装后的位置是:/etc/nginx/目录下,别的系统可能有差异,需要大家留心哦
|
nginx配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 进入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登录
1 2 3 4 5 6 7
| vim /etc/passwd //进入passwd文件找到git用户所在行 # 修改其bash环境,将: /bin/bash 改为:/usr/bin/git-shell # 保存退出即可 (tips:后面要将密钥添加到服务器端,还需要将bash给改回来......) 至此,服务器端的安装结束了!
|
客户端安装与配置
生成密钥
本地端(root主目录)生成密钥文件,并将公钥复制到上述提到过的文件中:
1 2 3 4
| ssh-keygen -t rsa -C "liudongdongder@****.***" //填自己的邮箱地址。 # 生成后会弹出设置密码,这个直接回车不用管,直接回车。 # 可以看见执行命令后生成两个文件,一个密钥,一个公钥(.pub)。 # 我们要将.pub文件即公钥复制到服务器端的/.ssh/authorized_keys中保存即可
|
node.js安装
什么是npm? NPM (Node Package Manager,节点包管理器)是NodeJS的包管理器,
用于节点插件的管理(包括 安装 ,卸载和管理依赖等)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # 下载: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及相关插件
1 2 3 4 5 6 7 8 9 10
| #使用命令下载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验证是否成功。
|
初始化本地站点
1 2 3 4
| ○ 创建一个站点目录blog:mkdir blog ○ 初始化站点目录:hexo init ~/blog ○ 进入博客目录:cd ~/blog ○ Npm install hexo-deployer-git --save
|
本地Hexo配置
1 2 3 4 5 6 7 8 9 10 11
| # 进入创建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推送)
1 2 3 4 5 6 7 8 9 10
| # 清除缓存 hexo clean
# 生成静态页面 hexo generate # 将本地静态页面目录部署到云服务器 hexo deploy # 访问是否部署成功
|
修改服务器端Hexo的访问端口
Hexo的默认访问端口是4000,我们要把他改成80端口,如果服务器是部署在阿里云上,记得在阿里
云打开相关端口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 服务器端改端口需要下载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!