昨天把小窝后端代码上传到了新服务器上,但出现了 500 错误,由于时间太晚就没继续解决了。(为此还请假了半天在家休息,搞运维真的是辛苦啊)
想要知道错误是什么,就得修改 php.ini
把错误展示出来,或者是写入到日志里。我原本想使用日志,结果发现并没有效果,就直接简单粗暴打印出来了(也是 PHP 最让人诟病的一点,输出 JSON 接口数据都能有一大堆别的东西干扰进来)
vim /etc/php/7.4/fpm/php.ini
error_log = /root/php-error.log
display_errors = On
错误内容是因为缺少 Composer 安装的依赖,于是我想直接 apt install composer
一把梭,安装完后发现它需要 PHP 8 才能运行(因为代码中用到了 8 才有的语法),而考虑到兼容性,我之前配置的是 PHP 7.4 的环境。安装一个旧版 Composer 挺麻烦的,看了下我依赖的 Redis 等扩展,干脆直接升级到 PHP 8.3,升级后的确有一些警告和错误,简单修复之后小窝和 API 的代码都能正常运行了。
vim /etc/php/8.3/fpm/php.ini
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING
目前网站还缺少之前的图片等静态文件,明天再继续跟进了。在修复过程中发现 CloudCone 那边的机器重启之后没出现磁盘被锁的提示了,可能那边的技术人员已经弄好了吧。我想干脆保留一些网站在那,这边新服务器承担一部分网站资源和流量,更高的配置也能为后续预留更多的资源用于开发新项目。
虽然 CloudCone 那边我也启用了自动快照功能,但前天写好的备份脚本还是得全部安排一套的,给这两台服务器都各自整一个,手动执行,但过程全自动化,直接上传到 CloudFlare R2 存储筒上,也解决了此前手动打包下载到本地网络缓慢导致博主反复血压倍增的问题。