PHP 8.4.21同时安装 OPcache 和 mbstring 后出现 502

AI摘要
ZibllAI

PHP 8.4.21 同时安装 OPcache 和 mbstring 后出现 502,并非 mbstring 导致,而是 OPcache 的 JIT 功能与当前环境不兼容,造成 PHP-FPM 段错误崩溃。可通过将 opcache.jit_buffer_size 设为 0 关闭 JIT,保留脚本缓存;或彻底卸载 OPcache 扩展解决问题。

mbstring 扩展本身并不会导致 502 错误。 如果同时安装了 OPcache 和 mbstring 后出现的 502,问题几乎可以肯定是 OPcache 引起的

为什么安装了 OPcache 就会 502?

问题的根源在于 PHP 8.4.21 版本中,OPcache 扩展的 JIT(即时编译)功能与当前环境存在不兼容。这可能会导致 PHP-FPM 进程因为”段错误”而崩溃,Nginx 在无法连接到后端时就会返回 502 错误。

解决方案(二选一)

方案一:关闭 OPcache 的 JIT 功能(推荐,保留基础缓存)

这个方法可以保留 OPcache 的脚本缓存加速能力,同时解决 502 错误。

1. 定位配置文件: 在宝塔面板的 软件商店 -> PHP 8.4 设置 -> 配置文件 中修改。

2. 修改参数: 在配置文件中找到 opcache.jit_buffer_size 这一行,将其值改为 0。如果找不到这行,可以手动添加。

修改前

opcache.jit_buffer_size=128m

修改后

opcache.jit_buffer_size=0

这个修改会关闭 JIT 功能,但 OPcache 的字节码缓存功能依然生效,对绝大多数网站的性能影响很小。

最后重启 PHP

方案二:暂时卸载 OPcache 扩展

如果修改 JIT 配置后问题依旧,或者想彻底排查,可以直接卸载 OPcache 扩展。

1. 在宝塔面板的 PHP 8.4 设置中,切换到 安装扩展 标签页。

2. 找到 opcache,点击 卸载

3. 卸载后网站会立即恢复正常。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像-Cik
欢迎您留下宝贵的见解!
提交
头像-Cik

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容