博客迁移
本文最后更新于:2024年8月11日 晚上
服务器迁移
前期准备
国内的服务器访问速度比Github快得多,因此考虑把博客迁移到服务器上是不错的。
首先你得拥有一个已经进行ICP备案的服务器,因为通过域名访问的时候会默认访问80
和443
端口,如果不进行ICP
备案的话这两个端口是阻断访问的,当然你通知你的好朋友使用别的端口访问也可以。
服务器安装Git及其初始化
本次教程没有使用Docker,后期会考虑应用这些内容,这次先把网站直接挂载在服务器本机上
!注意!本教程参考自瑾知,请主要参考该文章,本文章主要作为实现的记录,不具备非常大的参考价值,因为其设置上存在权限混乱问题,如果你不在意或者有能力修正的话,可以通知我修正文章,那么,请往下看吧。
首先在服务器上安装Git
1 |
|
用户设置
值得注意的是这个用户名字git
不是一定的,你可以取任意一个舒服的名字,但是后面的代码中所有git
的部分你都需要修改为你自己取的名字
1 |
|
添加公钥
首先进入用户进行操作,不适用root,这样可以避免一些权限错乱导致的问题
1 |
|
输入密码后,首先创建密钥储存的目录
1 |
|
然后创建保存公钥的文件
1 |
|
在你的电脑的目录C:\Users\QLozan\.ssh\id_rsa.pub
里找到你的公钥文件,之前在前述文章里面已经创建好了,直接使用即可。公钥是这样的
1 |
|
!排障!需要注意,不要把私钥当做公钥了,否则会导致推送出错!
现在进入文件夹内修改authorized_keys
来导入公钥
1 |
|
直接使用Ctrl+Shift+V
粘贴即可,一个公钥只占一行
配置钩子
与之前不同的是,文章会先推送至一个裸仓,然后由钩子钩到正确的静态网页的位置,他类似于一个拷贝脚本,每当有新的推送,它都会自动钩取文件。
通过下面的代码打开钩子配置文件post-receive
1 |
|
在里面写入下面的代码,#
不是注释,必须全部粘贴进去
1 |
|
- ■work-tree 静态文件在的地方,也就是你的网站根目录
- ■git-dir 裸仓库的位置,也就是推送的目的地
使用Ctrl+O
保存并Ctrl+X
退出Nano编辑器
创建静态文件目录
首先执行下面的代码,在静态文件目录中创建你的静态网页目的地
1 |
|
!排障!注意:这里创建的时可能提示没有权限,可以先提权创建文件,但是后期可能会遇到Permission Denined
的错误,你可以直接给用户提权也可以尝试修改目录的权限,我是直接设置权限为777后又把用户权限调回755,但是这可能导致一些问题。推荐你尝试用git
账号创建文件夹
打开你的宝塔面板,宝塔面板是腾讯云服务器自带的,如何在你的服务器安装宝塔面板请自行搜索
在左侧栏目中,点击网站
去建立网站,点开的面板如下
- 域名 直接填入你的域名,这个域名我使用了备案时的域名
- 是否添加解析由你自己决定,我备案时已经添加了解析
- 根目录:之前已经创建过了,是/www/wwwroot/Hexo
添加SSL证书
点击编辑
进入如下界面
输入你的SSL证书,你的SSL证书可以在DNSPOD
里面下载,腾讯云会自动帮你选择最合适的证书,一般使用Nginx
的证书,然后使用文本打开KEY文件和PEM文件
本地Hexo设置
在你的目录内,编辑_config.yml
的deplye
区块(最后一行)
改成以下形式:
这里给出代码
1 |
|
如果你想同时上传Github和服务器,可以把注释块#
删掉
其中:
qlozin:是你创建的账户名,如果你是按着教程直接写,应该是git
github: 这个地方是你之前的地址,直接复制过来即可
master: 默认分支,保持master即可,如果你的github是main的话,修改即可
推送
执行hexo cl
然后hexo g
再hexo d
即可正确推送至服务器
排障
你可以先尝试CMD的SSH git@yourServerIP
通过密钥链接服务器,看看能否联通,不能联通的话请再次检查你的密钥是否正确,一般是不会出现密钥配置之外的问题的
Permission Denined
如果推送的时候出现这个问题,而且Github能成功推送的话,说明密钥配置正确,请检查你的子账户是否拥有目的静态网页文件的权限,尝试提权