本站搭建在香港阿里云服务器,为了少折腾,一次性买了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

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

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

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

标签: 博客建设, typecho, 阿里云, 博客迁移

已有 25 条评论

  1. 我是用hexo + github + vercel部署,国内用又拍云CDN加速。GitHub托管代码,用Actions自动部署到GitHub pages仓库,vercel同步pages仓库进行托管。

    1. 强,听起来有些复杂。
      以前也用过静态博客,后来还是闲麻烦,最重要的是不想把评论放第三方,又改为服务器建站了。

      1. 其实也不复杂。评论我是用utteranc.es放在pages仓库里issues里了。最主要的是除了域名之外,其他都是免费的。我还用GitHub+vercel做图床。

  2. 一开始我就用的大陆的,前期的话事比较多,备案就需要等一段时间了。
    但是备案了,后面感觉也就不需要多操心了,倒也省事。😁

    1. 是的,省心了。唯一担心的是以后会检查要求关闭评论。

  3. 我的域名根本就没法在国内备案,懒得折腾了

    1. 不影响访问,就没必要折腾了。

  4. 请问怎么备案成功,刚刚给我打电话说,不能有评论,不能有留言,不能有打赏,不能有任何交互性的东西。备案太难了。。。

    1. 我的备案号15年申请的,那个时候没有这些要求。
      现在的话,备案期间把这些功能都关掉吧,通过了再考虑加上这些功能。

  5. 使用 docker-compose,从此爱上迁移。

    1. 之前装mastodon的时候用了docker,感觉初次使用有些新概念需要理解,都一知半解,哈哈。

  6. 未备案,也无所谓被Ban,就是嫌麻烦。

    1. 哈哈,如果没ban,我也不会迁回大陆,麻烦。

  7. 不容易呀,香港主机我比较担心访问不稳定有时候慢,不用备案确实挺吸引人,不过国内如果备案号基本上也没啥事,总是有得有失

    1. 期间看了几个关注的博友,香港主机的都没出问题,不知为啥就我被kill了。。无奈。
      是的,国内备案,一劳永逸,我的博客很日常。

  8. 我比你幸运一些,大陆能访问香港主机,但移动4G网络不行,搞得我还要反代一下

    1. 还能反代解决啊,不懂,早知道试试了。。

  9. 这几天突然发现你的博客上不了,也不知道怎么回事,还好没删书签。我刚开始建博客,以后多多交流😊

    1. 哈哈,多谢支持,多多交流。

  10. 说起来之前看你的网站明明备案了呀_(:з」∠)_原来备案了也能无声无息被拔网线的吗……

    1. 看起来,备案域名+大陆之外的服务器是可能的了。总感觉是一刀切被误伤了,委屈。

添加新评论