本站搭建在香港阿里云服务器,为了少折腾,一次性买了5年。

但人算不如天算,6月28日开始,本站在大陆无法访问,联系客服,回复说域名被上游网络阻断。至于为什么,没人知道。自问本站内容没啥问题,猜测可能被误伤,寄希望于7月2日能够恢复。但直到深夜,依然无法访问。

没办法,只好重新购买阿里云大陆服务器,迁移网站。

以前写过两篇总结:

因为使用了sqlite3数据库,不涉及MySQL迁移,以为能够很快搞定,没想到还是一堆坑。记录下填坑过程。

1、将原站点目录连同sqlite3数据文件和nginx配置文件,全部迁移到新服务器

旧服务器上

cp /etc/nginx/sites-available/www.skyue.com /home/typecho/www.skyue.com # 把nginx配置文件也复制到站点目录
zip -r typecho.zip /home/typecho/  # 将站点文件夹压缩为zip文件
mv typecho.zip /home/typecho/usr/uploads/ # zip文件复制到可访问目录

新服务器上

curl https://www.skyue.com/usr/uploads/typecho.zip -o typecho.zip # 下载站点文件
apt install zip # 新服务器上没有zip软件,新安装
unzip typecho.zip # 解压站点文件夹

后面的事情全部在新服务器上。

2、安装nginx和php

apt install nginx
apt install php

3、将nginx配件文件复制到配置目录并创建软链接

cp /home/typecho/www.skyue.com /etc/nginx/sites-available/www.skyue.com 
ln -s /etc/nginx/sites-available/www.skyue.com /etc/nginx/sites-enable/www.skyue.com 

4、重新加载nginx配件文件

nginx -s reload

这里开始报错了,提示找不到证书文件。

5、安装证书

按照《搭建mastodon实例和typecho数据库迁移》中记录的方式安装证书:

sudo snap install core; sudo snap refresh core    #如果没有snap则 apt insall snapd 安装
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d 你的域名

最后一步一直报错,提示内容也是找不到证书文件。

这里卡壳了很久,最后发现,需要删除配件文件中带有# managed by Certbot注释的内容。

删除后,重新执行sudo certbot --nginx完成证书安装。

再执行nginx -s reload重新加载配置文件,也没有报错。

于是激动的到浏览器中访问网站,又来了个502 bad gateway错误。

6、nginx配件文件中修改php版本

继续Google,502的错误一般是fastcgi导致的,nginx配件文件中刚好有一段fastcgi配置,其版本号是7.2,但新安装的php是7.4,于是修改版本号解决。

7、安装php-sqlite3

再访问网站,浏览器继续报错,这次是PHP错误,大意是无法操作sqlite3数据库。

需要安装php-sqlite3插件解决。

apt install php-sqlite3

8、修改目录和文件权限

继续访问网站,PHP继续报错,提示sqlite数据文件只有读权限,没有写权限。需要修改目录和数据库文件权限:

sudo chown -R :www-data /home/typecho/ # 修改站点目录权限
sudo chmod -R 775 /home/mydata.db # 修改数据库文件权限

9、解决Python脚本发布报错

当我使用《使用Python和MetaWeblog API发博客》文中的脚本发布本文时,终端报错ResponseError,就这么一点内容,查都没法查。

于是使用MWeb进行发布,MWeb提供了更详细的错误信息,原来服务端没有php-xml插件,导致博客的xmlrpc接口无法工作。安装php-xml插件解决。

apt install php-xml

到这里,才终于全部解决。香港服务器可以申请退款了。

最后吐个槽,阿里云比腾讯云贵,但考虑到之前域名已经在阿里云备案,贵就贵点,不折腾了。

也希望这篇文章以后用不上。

🔔 Email 或 RSS 订阅本博客

已有 25 条评论

  1. 我国内的网站到现在还没有备案成功,你现在就能备案了吗。
    还好我不用PHP程序,换地方只要挪窝就行

    1. 我是15年的备案,年初还接到阿里云的电话,让我把域名解析指向大陆IP,否则可能被注销,目前来看,好像还没有注销。现在迁回国内,应该能继续用。
      这次的折腾主要也在服务器配置方面,博客本身的数据和配置完美迁移了,我更关心后者的一致性。

  2. 这是绕了一圈又回到了起点

    1. 是啊,放回国内又备了安,该一劳永逸了。就是贵了点,心疼。

添加新评论