本站的部署方式也是基于下方教程搭建的

所有需要的东西: GitNodejsHexo(左边三个安装在自己电脑上)、云服务器(建议系统:CentOS****一个(轻量也行,虚拟主机不行)、一个域名(如果是国内服务器,先备案,国外则不需要)

本地Hexo的部署(建站部分)

Hexo官网有相关的教程,可以参考。先在桌面新建一个文件夹Hexo_next,然后进去建立的文件夹,输入

1
hexo init

下载主题next,有很多,可以自己选择,博主使用的是butterfly。这里使用next来进行演示。进入Hexo_next\themes输入

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

下载该项目,有错误不要担心,多试几次,或者使用加速。将下载的文件名称改为next,打开配置文件_config.yml,在100行左右,将主题修改为next对应目录下,打开在git bash输入

1
npm i hexo-renderer-swig

然后输入

1
hexo c && hexo g && hexo s

打开浏览器,输入如下,就可以看到 [http://localhost:4000/] 至此本地部署已经完成,后续的改动可以参考其他博文,后续开始进行服务器端的部署。

服务器端部署

安装Git,打开服务器控制面板,修改root密码一定需要修改!!!!!,选择登录。输入

1
sudo su root

然后安装Git

1
yum install git

创建git账户

1
2
3
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers

添加git ALL=(ALL) ALL改回权限

1
chmod 400 /etc/sudoers

设置git账户密码

1
sudo passwd git

设置的密码看不到,你直接输入就可以了。这里我设置的密码太简单了会有这样的提示。不用关心直接输入,看到成功提示即可。切换至git用户,创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并赋予相应的权限,输入vim ~/.ssh/authorized_keys以后先往下走,这里先放一边,我们先去创建密钥,回头粘贴在里面,先切换成git

1
2
3
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

Git 常用命令(本地桌面使用即可!)

1
2
3
git config -l  //查看所有配置
git config --system --list //查看系统配置
git config --global --list //查看用户(全局)配置
1
2
3
Git CMD 是windows 命令行的指令风格
Git Bash 是linux系统的指令风格(建议使用)
Git GUI是图形化界面(新手学习不建议使用)

然后右键桌面打开git bash配置用户名和邮箱

1
2
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

通过git config -l检查是否配置成功,至此git安装及配置全部完成。执行以下命令生成ssh公钥,此公钥用于你的计算机连接你的轻量云服务器

1
ssh-keygen -t rsa -C "你的邮箱"

之后打开C盘下用户文件夹下的.ssh的文件夹,会看到 id_rsa.pub用记事本打开上述图片中的公钥(id_rsa.pub),复制里面的内容,然后粘贴在vim ~/.ssh/authorized_keys中打开的界面,如果无法粘贴,Shift+i 进入编辑模式即可,然后Ctrl+V粘贴进入即可,然后按ESC,在Shift+;,输入wq,保存退出,不懂的可以百度一下vim编辑器的用法即可,赋予权限

1
2
chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

这样就可以尝试在你的本地登录了,SERVER是你的云主机IP

1
ssh -v git@SERVER

返回服务端命令行切换到 root 账户(会要求输入之前的设置的Git密码)

1
sudo su root

然后输入,赋予权限

1
2
3
mkdir /var/repo
chmod -R 755 /var/repo
chown -R git:git /var/repo/

创建一个新的库:

1
2
cd /var/repo
git init --bare hexo.git

创建一个新的 Git 钩子,用于自动部署。在/var/repo/hexo.git下,有一个自动生成的hooks文件夹。我们需要在里边新建一个新的钩子文件 post-receive

1
vim /var/repo/hexo.git/hooks/post-receive

进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。

1
2
#!/bin/bash
git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/hexo.git checkout -f

新建一个文件用做网站的根目录,记得给权限

1
2
3
mkdir /www/wwwroot/hexo
chmod -R 755 /www/wwwroot/hexo
chown -R git:git /www/wwwroot/hexo

Nginx

我们使用宝塔面板来一键部署Nginx关键是简单(如果已经安装,请略过)

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

其中可能让你输入y/n。输入y确认即可,第二个SSL的输入y/n。输入n确认即可然后等等安装,安装结束后,复制上述地址即可。用户名与密码也有在用户面板中,打开软件商店输入Nginx,选择免费的安装。等待安装结束。(如果进不去,请检查一下宝塔给你端口,服务器是否打开,如果没打开,请手动去打开对应端口),部署完成之后,点击网站,添加站点,填写你的域名,,没有的话写你的服务器ip地址。根目录选我们之前建立的/www/wwwroot/hexo

创建站点的时候,php版本记得改成纯静态,建立完站点后,去文件里找到hexo 文件并把里面所有文件全部删除,如站点创建成功,等的Inde.html ,删空即可

备注:如果你解析的是@记录,就填写xxxxxx.com,如果你解析的是www记录,就填写www.xxxxx.com

回到服务器终端,重启宝塔服务

1
service bt restart

接下来需要将本地的生成好的/public推送到服务器。进入本地电脑hexo博客的根目录,编辑站点配置文件_config.yml,找到deploy,修改成以下(修改repo: git@127.0.0.1:/var/repo/hexo.git,把127.0.0.1修改成你服务器的IP

1
2
3
4
5
deploy:
type: git
#repo改为repo: git@IP:/var/repo/hexo.git
repo: git@127.0.0.1:/var/repo/hexo.git
branch: master

接下来在宝塔文件页面找到www/wwwroot/hexo右键单击给与权限777

1685932189657.jpg

返回根目录,找到根目录/var/repo,右键单击给与777权限

1685875187412.jpg

为什么要执行上面两步

原因如下,在你本地一键三连的时候需要将本地文件推送到宝塔文件里面,如果不给予权限,会推送失败

然后使用(第一行npm执行一次就行)

1
2
npm i  hexo-deployer-git  -- save
hexo clean && hexo g && hexo d

可能会要求输入密码。你就输入你当时设置Git密码!

在推送的时候如果出现推送失败,那是你服务器22port(端口)没开,需要开启

![1685875232739.jpg](https://bu.dusays.com/2023/06/04/647c6a23f3016.jpg

在这里建议,22端口最好限制来源IP,把你自己公网IP设置成白名单,仅对你开放就行,如果之前你直接开放,并是0.0.0.0/0,请立即更改,避免被一些别有用心者,利用密码爆破等手段爆破你服务器,从而入侵,在你服务器挂病毒,挖矿木马等。在这里写一种博主常用的查自己公网IP方法

win+R 输入 cmd 回车 输入
1
curl ifconfig.me

1685932249380.jpg

然后复制你公网IP去服务器防火墙那里添加例如(IP地址随便编的,并不是我IP),确定即可。

1685875404445.png

当然你觉得这个麻烦,你也可以直接百度地址栏输入IP地址查询,即可看到你公网IP

在这里提醒一下,你虽然添加了IP,但是如果你是电脑连接校园网,手机热点,或者WIFi,建议每次三连之前都执行上面操作,应为不同地区,不同时间段,给你分配的IP不一样。

好用,帮助到了你,记得好评哦

你们的反馈与支持是作者坚持下去的最大动力!