hexo博客部署并同步更新到服务器

hexo博客部署并同步更新到服务器

使用github pages部署博客虽然可以避免服务器过期这样的情况,但是国内访问速度实在是太慢。所以可以将代码托管到github同时使用webhook实现GitHub与服务器同步推送代码。

购买服务器

注意:国内的服务器有学生有优惠套餐,但是只可选择大陆地区的服务器,并且大陆地区服务器需要备案才能使用,备案流程麻烦并且时间长。但是比较便宜。可以根据需求自行选择。

这里我使用的是宝塔控制面板,方便直观的操作。

后期如有需要使用其他类型的可重置系统。

购买域名

域名可以选择自己喜欢名称。建议在万网购买,实名认证方便快捷。

解析域名

在域名管理处,点击添加域名

添加域名

将购买的域名添加到这里,点击解析设置

解析设置

设置

点击添加记录

扫描二维码关注公众号,回复: 12005423 查看本文章

一个主机记录选择@(直接输入域名即可进入网站),一个选择www(域名前面加上www即可进入网站),也可以自定一个前缀,记录类型选择A,指向一个IPv4地址,记录值填写自己的服务器ip。

添加记录

进入宝塔面板

此处我在选择系统的时候选择安装的宝塔面板,不需要手动安装。需要手动安装的可以根据官方教程安装。

如果安装后不能正常使用,则需要在服务器管理面板放行端口。

进入面板后可以一键安装自己需要的软件。可以选择极速安装。

安装软件

创建站点

宝塔面板安装完成后,导航栏点击网站,添加站点。

创建新站点

添加

hexo页面是纯静态页面,不需要ftp以及数据库,php版本选择纯静态。

添加的域名要解析在服务器上才可正常使用。

使用webhook实现同步页面

虽然服务器配置好以后,宝塔面板并不支持代码托管,也就是说使用hexo d命令推送的代码并不能推到宝塔上来实现更新网站。于是使用webhook来实现与github代码同步。

原理:

webhook原理

安装宝塔webhook

在宝塔面板导航栏点击软件商店,搜索webhook,点击安装。

安装webhook

安装完成后点击设置,添加

添加

名称和脚本任意填写,填写以后可以编辑。

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"

#git项目路径
gitPath="/www/wwwroot/zhaosheng2000.github.io"
#git 网址
gitHttp="https://github.com/ZhaoSheng2000/ZhaoSheng2000.github.io.git"
 
echo "Web站点路径:$gitPath"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
               	sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        #拉取最新的项目文件
        sudo git reset --hard origin/master
        sudo git pull origin master
        #设置目录权限
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

注意:git项目路径必须要在服务器上面真实存在并且不能删除,git地址是你的github项目clone项目的https地址

随后点击保存。

编辑完成后,点击查看密钥,复制url,建议复制&前面的内容

密钥url

进入GitHub项目,选择settigs,WebHooks,点击Add webhook

add webhook

配置

配置完成后点击Add webhook

注意:webhook需要打开7777端口,需要在服务器安全组放行端口,否侧会出现连接失败

返回到面板,点击测试,在日志中查看效果。或者更新一篇文章,查看是否有拉取记录。

测试

日志

同时回到github的webhook界面,点击edit编辑刚刚的钩子

编辑

记录

此时表明服务器自动钩取github仓库的master分支已经成功来取到服务器上。(红色的错误是因为没有放行7777端口导致的)


此时,当你在你的本地电脑执行hexo g -d的时候,文章就会同步更新到你的云服务器上了。

猜你喜欢

转载自blog.csdn.net/weixin_44555878/article/details/106588253
今日推荐