7B2主题频繁出现502错误的解决办法

本站使用的是7B2主题,前段时间频繁出现502 bad gateway错误。搜索了一下,出现问题的不少,共同特征是都使用PHP 8.0和PHP 8.1,都是用的是宝塔面板。解决办法也是五花八门。本站实测了一下,以下办法可以解决。

使用PHP 7.4版本

目前可以肯定的是,出现该问题与主题采用Swoole Compiler加密有关。而且问题都出在PHP 8.0和PHP 8.1两个版本。经过测试,使用PHP 7.4版本可以解决频繁出现502的问题。

更换控制面板

出现此问题的好像都是使用宝塔控制面板。经过测试,使用AMH面板,环境为PHP 8.1 + MySQL 8.0 + Nginx 1.26(均编译安装),没有再出现相关问题。

其他解决办法

其他有很多朋友也贡献了很多解决办法,一些经我测试无效,一些没测,大家可自行测试。

Opcache JIT 配置法

众所周知,柒比贰(7B2)主题使用的是SwooleC(Swoole Compiler)加密,而Swoole Compiler 软件本身就是将 PHP 代码编译为经过特殊处理的opcode,所以使用Swoole Loader加载程序时,不需要其他OpCache扩展,包括opcache、apc、ZendGuardLoader、eAccelerator等扩展。

如果你的应用程序中,同时有加密代码和非加密代码。当swoole_loader发现是非加密代码时,会将编译控制权转给opcache,由opcache实现代码的加载。

Opcache JIT 引起的 502 问题

请注意 Opcache JIT 与 Swoole Loader 存在不兼容,若要同时使用 swoole_loader 和 opcache 时必须要修改 php.ini 关闭 opcache.jit

opcache.jit=0

修改PHP配置文件

在php的配置文件最末端加上request_terminate_timeout =10s

移动loader81.so位置

只需要把B2主题需要的loader81.so这个扩展,移动到PHP配置的最后一行即可!

卸载Redis Object Cache

有网友说,卸载了Redis Object Cache后所有问题也恢复正常了,7B2主题作者也认为和Redis Object Cache插件有关。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注