将hexo推送到Ubuntu服务器上

本地部署可以前往我之前用Hexo搭建个人博客进行部署和搭建


在部署时我使用的时ubuntu(Ubuntu 22.04.3 LTS)+宝塔进行搭建

宝塔的安装

首先我们可以先连接上服务器安装宝塔桌面环境
我们可以使用ssh工具连接上自己的服务器,或使用服务商自带的ssh网页共具来进行连接
这里我使用window自带的ssh工具来连接服务器
使用win+r建打开快捷运行栏,在其中输入

1
ssh root@你的服务器地址

回车,这是会进入cmd界面,在root@你的服务器IP地址’s password:后面输入你的服务器密码,注意在输入密码时是看不见的在输入完正确的密码后回车后即可
![ssh连接完成图片.png](https://image.mnchen.cn/2024/02/屏幕截图 2024-02-23 144714.png)
连接成功后复制对应的系统安装指令,回到ssh界面。
因为Linux的复制粘贴与window的不同,在Linux中是使用Shift+Insert进行粘贴的,在window自带的ssh中可以使用鼠标右键进行粘贴

可前往宝塔官网查看安装地址(https://bt.cn)

安装时一直回车就好了,或者有什么需要修改可以自行修改
在安装完成后可以看到面板的外网地址,在IP地址后有一串段口号,需要到对应的服务供应商去开启端口
开启后选中外网地址使用ctrl+Insert进行复制,到浏览器中打开,输入账号密码进入面板


nginx的安装

进入宝塔面板后我们就可以退出Windows自带的ssh工具了
在宝塔面板的左侧有一个终端工具,可以在那里进行输入,在安装完宝塔后我们首先安装nginx
在安装完宝塔后打开的第一时间就能看到两个环境安装,去安装nginx的就好了
如果之前安装过宝塔就进入软件商店中安装nginx

git配置

在安装完nginx后,进入宝塔自带的终端在命令框输入
宝塔终端.png

安装git

安装非常直接,仅仅以 sudo 权限用户身份运行下面的命令:

1
2
sudo apt update
sudo apt install git

运行下面的命令,打印 Git 版本,验证安装过程:

1
git --version

创建git用户

1.在命令框输入(下面不做重复提示了)

1
adduser git

2.添加git账户权限
首先输入

1
chmod 740 /etc/sudoers

开启权限,在宝塔面板文件中打开/etc/sudoers
![屏幕截图 2023-08-27 113642.png](https://image.mnchen.cn/2024/02/屏幕截图 2023-08-27 113642.png)
双击进入文件中,找到以下代码

1
2
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

添加以下内容:

1
git     ALL=(ALL:ALL) ALL

改成

1
2
3
# User privilege specification
root ALL=(ALL:ALL) ALL
git ALL=(ALL:ALL) ALL

后就可以保存退出了

3.改回权限

1
chmod 400 /etc/sudoers

5.切换至git用户,创建 ~/.ssh 文件夹

1
2
su git
mkdir ~/.ssh

配置本地ssh

在创建号.ssh文件夹后,先回到电脑配置本地ssh,如果之前配置过就直接复制位于C盘用户中.ssh文件夹里面的id_rsa.pub,用记事本打开,c全选复制就好了
在本地电脑打开聪明的输入

1
2
ssh-keygen -t rsa -C "your [email protected]"
//引号里面填写你的邮箱地址,比如我的是[email protected]

之后会出现:

1
2
3
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa):
//到这里可以直接回车将密钥按默认文件进行存储

然后会出现:

1
2
3
Enter passphrase (empty for no passphrase):
//这里是要你输入密码,其实不需要输什么密码,直接回车就行
Enter same passphrase again:

接下来屏幕会显示:

1
2
3
4
5
6
Your identification has been saved in /c/Users/you/.ssh/id_rsa.
Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
The key fingerprint is:
这里是各种字母数字组成的字符串,结尾是你的邮箱
The key's randomart image is:
ssh配置这里也是各种字母数字符号组成的字符串

运行以下命令,将公钥的内容复制到系统粘贴板上

1
clip < ~/.ssh/id_rsa.pub

在宝塔面板中打开根目录下的home文件中git的.ssh文件夹
在里面创建一个名为authorized_keys的文件
ssh配置.png
创建后双击打开,将配置在本地的ssh粘贴保存在其中
接着,输入一下命令,赋予权限

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

在本地Git终端中测试是否能免密登录git,其中SERVER为填写自己的云主机IP,执行输入yes后输入你之前配置的git密码,无报错就说明好了,在电脑本地打开cmd,输入以下命令其中SERVER填写自己的云主机ip,执行输入yes后不用密码说明配置成功了。

1
ssh -v git@SERVER

git测试.png

仓库目录及相关配置

先返回root账号输入以下命令

1
su root

进入根目录

1
cd ~ 

在根目录下创建hexo/repo作为Git仓库目录

1
mkdir -p /hexo/repo

赋予权限:

1
2
chown -R git:git /hexo/repo
chmod -R 755 /hexo/repo

接下来创建hexo目录作为网站根目录,并赋予权限:

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

接下来创建一个空白的git仓库

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

创建一个新的 Git 钩子,用于自动部署.
在 /hexo/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
在宝塔文件中打开/hexo/repo/hexo.git/hooks,在里面创建一个名为post-receive的文件
post.png
双击打开,将以下代码输入进去

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

修改权限:

1
2
chown -R git:git /hexo/repo/hexo.git/hooks/post-receive
chmod +x /hexo/repo/hexo.git/hooks/post-receive

将整个hexo文件夹权限给到git用户

1
2
chown -R git:git /hexo
chmod -R 755 /hexo

到这里Git仓库已经搭建完毕了。

本地配置

打开本地的博客文件夹,修改 _config.yml文件,找到deploy,修改成以下

1
2
3
4
5
deploy:
- type: git
#repo改为repo: git@你的域名:/hexo/repo/hexo.git
repo: [email protected]:/hexo/repo/hexo.git
branch: master

最后在本地电脑hexo博客的根目录右击,Git Bash Here,输入以下命令部署

1
2
3
hexo cl
hexo g
hexo d

宝塔设置网站

进入宝塔面板中的网站,添加一个新的站点 ,将网站目录改到/hexo/hexo就好了
网站目录.png

结尾

因为这篇网站是我直接的部署方案,可能还有什么不到为的地方。
总的来说,部署还是比较简单的,第一次没成功的同学不要轻易放弃,多去网上找找答案,努力解决问题,加油!