将hexo推送到Ubuntu服务器上
将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后,进入宝塔自带的终端在命令框输入
安装git
安装非常直接,仅仅以 sudo 权限用户身份运行下面的命令:
1 | sudo apt update |
运行下面的命令,打印 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 | ## Allow root to run any commands anywhere |
添加以下内容:
1 | git ALL=(ALL:ALL) ALL |
改成
1 | # User privilege specification |
后就可以保存退出了
3.改回权限
1 | chmod 400 /etc/sudoers |
5.切换至git用户,创建 ~/.ssh 文件夹
1 | su git |
配置本地ssh
在创建号.ssh文件夹后,先回到电脑配置本地ssh,如果之前配置过就直接复制位于C盘用户中.ssh文件夹里面的id_rsa.pub,用记事本打开,c全选复制就好了
在本地电脑打开聪明的输入
1 | ssh-keygen -t rsa -C "your email@example.com" |
之后会出现:
1 | Generating public/private rsa key pair. |
然后会出现:
1 | Enter passphrase (empty for no passphrase): |
接下来屏幕会显示:
1 | Your identification has been saved in /c/Users/you/.ssh/id_rsa. |
运行以下命令,将公钥的内容复制到系统粘贴板上
1 | clip < ~/.ssh/id_rsa.pub |
在宝塔面板中打开根目录下的home文件中git的.ssh文件夹
在里面创建一个名为authorized_keys的文件
创建后双击打开,将配置在本地的ssh粘贴保存在其中
接着,输入一下命令,赋予权限
1 | chmod 600 /home/git/.ssh/authorized_keys |
在本地Git终端中测试是否能免密登录git,其中SERVER为填写自己的云主机IP,执行输入yes后输入你之前配置的git密码,无报错就说明好了,在电脑本地打开cmd,输入以下命令其中SERVER填写自己的云主机ip,执行输入yes后不用密码说明配置成功了。
1 | ssh -v git@SERVER |
仓库目录及相关配置
先返回root账号输入以下命令
1 | su root |
进入根目录
1 | cd ~ |
在根目录下创建hexo/repo作为Git仓库目录
1 | mkdir -p /hexo/repo |
赋予权限:
1 | chown -R git:git /hexo/repo |
接下来创建hexo目录作为网站根目录,并赋予权限:
1 | mkdir /hexo/hexo |
接下来创建一个空白的git仓库
1 | cd /hexo/repo |
创建一个新的 Git 钩子,用于自动部署.
在 /hexo/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
在宝塔文件中打开/hexo/repo/hexo.git/hooks,在里面创建一个名为post-receive的文件
双击打开,将以下代码输入进去
1 | #!/bin/bash |
修改权限:
1 | chown -R git:git /hexo/repo/hexo.git/hooks/post-receive |
将整个hexo文件夹权限给到git用户
1 | chown -R git:git /hexo |
到这里Git仓库已经搭建完毕了。
本地配置
打开本地的博客文件夹,修改 _config.yml文件,找到deploy,修改成以下
1 | deploy: |
最后在本地电脑hexo博客的根目录右击,Git Bash Here,输入以下命令部署
1 | hexo cl |
宝塔设置网站
进入宝塔面板中的网站,添加一个新的站点 ,将网站目录改到/hexo/hexo就好了
结尾
因为这篇网站是我直接的部署方案,可能还有什么不到为的地方。
总的来说,部署还是比较简单的,第一次没成功的同学不要轻易放弃,多去网上找找答案,努力解决问题,加油!