NakanoMiku
文章10
标签12
分类3
记一次皮肤站Internal Error修复

记一次皮肤站Internal Error修复

今天回到宿舍后正准备做作业,突然收到通知说社团的皮肤站炸了,于是立即上线查看情况

排查过程

首先我查看Apache2有没有出问题

systemctl status apache2

Apache2正常运行,然后查看php8.1-fpm有没有问题

systemctl status php8.1-fpm

发现都没问题,我决定先查看Apache2的log

tail -n 200 /var/log/apache2/error.log

得到以下内容:

[Mon Sep 23 11:21:16.936325 2024] [php:error] [pid 159026] [client 115.27.161.58:55358] PHP Fatal error: Declaration of Illuminate\Http\Response::setContent($content) must be compatible with Symfony\Component\HttpFoundation\Response::setContent(?string $content): static in /var/www/blessing-skin/plugins/oauth/vendor/illuminate/http/Response.php on line 48, referer: https://mc.lcpu.dev/sw.js?v6
[Mon Sep 23 11:21:16.937105 2024] [php:error] [pid 159026] [client 115.27.161.58:55358] PHP Fatal error: Uncaught Error: Class “Illuminate\Http\Response” not found in /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:784\nStack trace:\n#0 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(650): Illuminate\Foundation\Exceptions\Handler->toIlluminateResponse()\n#1 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(556): Illuminate\Foundation\Exceptions\Handler->prepareResponse()\n#2 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(473): Illuminate\Foundation\Exceptions\Handler->renderExceptionResponse()\n#3 /var/www/blessing-skin/app/Exceptions/Handler.php(38): Illuminate\Foundation\Exceptions\Handler->render()\n#4 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(218): App\Exceptions\Handler->render()\n#5 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(195): Illuminate\Foundation\Bootstrap\HandleExceptions->renderHttpResponse()\n#6 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(231): Illuminate\Foundation\Bootstrap\HandleExceptions->handleException()\n#7 /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(255): Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown()\n#8 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}()\n#9 {main}\n thrown in /var/www/blessing-skin/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 784, referer: https://mc.lcpu.dev/sw.js?v6

很明显是php的问题,如果再仔细阅读的话,可以发现是/var/www/blessing-skin/plugins/oauth/vendor/illuminate/http/Response.php导致了问题,由于我没有仔细阅读log,所以第一时间没有发现问题所在,好在有群友的帮助下,最后还是定位到了这个问题。可以看出来这个文件位于plugins目录下,而plugins目录是Blessing-skin中安装插件后插件所在的目录,根据目录名可以得知这是一个关于oauth的插件,因为我对php不熟,所以我大胆推测直接删除这个目录可以直接解决问题,于是群友将该插件移出后端,最后皮肤站成功上线。我访问皮肤站后重新安装了oauth插件,成功复现问题。因为这个插件已经安装了一段时间,可能是服务器自动更新了最新版本的插件导致兼容性问题,所以暂时不安装这个插件规避问题。

总结与反思

在查看完Apache2的log之后,我还进行了很多操作,比如说尝试更新后端的依赖、查看php的log、甚至是查看php镜像站状态等等,但其实仔细阅读log就能一下发现问题所在,所以仔细阅读log非常重要,可以节省很多时间和精力。

本文作者:NakanoMiku
本文链接:http://nakanomiku39.github.io/2024/09/23/%E8%AE%B0%E4%B8%80%E6%AC%A1%E7%9A%AE%E8%82%A4%E7%AB%99Internal-Error%E4%BF%AE%E5%A4%8D/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可