小博客一直用着腾讯云的服务器,上一次托朋友Bug侠帮我搭了个486元3年的车,最近快到期了,于是自己另外找了渠道新开了服务器。这也是有博客以来的惯例,由于老机没有优惠了,新机总是更便宜,所以每隔一年或几年就需要搬家一次,换到新的服务器上。
更换面板
这次与以往不同的是,我之前服务器使用的前几年流行的宝塔面板,后来因为他的新版没有开源且开始要求手机号实名制了,所以这次换到了1Panel。虽然还是一个国产面板,但起码新版本的开源做得比宝塔要更好。
如开头所说,博客换服务器已经很多次了,今天也是正常操作,宝塔那边打开phpmyAdmin把数据库完整导出,网站目录文件打包下载。然后在1Panel这边安装了OpenResty + PHP + MySQL,建立了数据库,直接把数据库导入,再新建一个网站,把文件上传到对应目录就完事儿了,一般情况下可能由于数据库密码变更之类的需要修改一下配置文件,但我为了省事儿,用到的密码都是和之前保持一致的。按理说这就应该很简单了,结果很不幸,居然遇到了问题。
面板的瑕疵?
首先是配置SSL,申请了证书之后,保存配置遇到报错,根据错误提示看,似乎是说log文件的路径不对。
查看 OpenResty 的配置文件发现两个log文件的路径与1Panel实际建立的站点路径不一致,它建立的PHP网站路径是在配置文件路径下再一个 /index 文件夹中。
尝试修改OpenResty发现继续报错,这次报错又有了一个新的配置文件路径,但实际上
/usr/local/openresty/nginx/conf/conf.d/xxx.conf
这个文件路径是不存在的。
好吧,我的理解是,其实就是因为它不存在,所以它会报错。那么针对不存在的文件的报错,我们应该去建立对应路径下的文件?其实不是,这个配置文件其实存在只是路径不在这里,而是在
/opt/1panel/apps/openresty/openresty/conf/conf.d/xxx.conf
我们只需要打开这个文件,对前面报错的log文件路径进行修改,按实际网站的目录路径去改,就发现给我网站设置SSL不再报错了。
对于这个配置文件路径的问题,我感觉是1Panel的瑕疵,它定义了PHP环境网站的运行目录,但没有把Openresty对应的配置文件给配置好造成的。
更新网站配置
解决了这个问题,设置了伪静态规则等内容后,我发现网站还是不能访问,根据主观臆断,网站配置均已与此前服务器同步了,目前Web访问时提示的找不到目录,大概率是网站与数据库没连上,意识到1Panel与宝塔的很大不同是它基于Docker在玩。于是打开Typecho的配置文件,看到数据库那里写的localhost,在其他环境下,这没啥问题。在1Panel中就需要根据数据库的连接信息进行修改,填入后果然博客恢复了正常。
为什么要水一篇博客?
虽然小博客更新缓慢,内容也很陈旧。但对我个人来说,这里记录了自己17年前写下的东西,要知道哪怕是现实里,我们能保存17年的东西都不算多,于是这个小博客已然算得上是一个珍贵的物件了。所以,每次换博客程序,每次搬家换服务器,都不希望它遇到任何的问题。
既然这次遇到了,那为了下次的顺利,我便把它记录下来,让这次的问题成为下次可以参考的经验。