安装及卸载Xdebug后PHP JIT功能失效的修复问题咨询
你遇到的JIT is incompatible with third party extensions that override zend_execute_ex()警告,本质是PHP加载了会占用Zend引擎执行入口的第三方扩展,卸载Xdebug后仍触发该问题多是因为残留配置未清理、或存在其他冲突扩展,按以下步骤修复即可:
修复步骤
- 第一步:检查是否存在Xdebug扩展残留
执行php -m命令查看已加载扩展列表,确认是否还有xdebug条目。由于CLI和PHP-FPM的配置相互独立,建议额外在web目录下创建phpinfo页面,检查FPM模式下是否还加载了Xdebug。 - 第二步:清理残留的Xdebug配置文件
Debian/Ubuntu系统中PHP扩展配置默认存放在/etc/php/8.0/目录下,CLI和FPM的配置分别对应cli、fpm子目录下的conf.d文件夹,执行以下命令删除所有Xdebug相关配置:rm /etc/php/8.0/*/conf.d/*xdebug*.ini - 第三步:排查其他冲突扩展
除了Xdebug外,所有会覆盖zend_execute_ex()方法的第三方扩展都会触发该警告,常见的包括ionCube、Zend Guard Loader、APCu调试模式、自定义性能监控扩展等,可临时禁用非核心扩展逐一排查冲突项。 - 第四步:重启PHP-FPM服务生效
配置修改完成后执行重启命令加载新配置:systemctl restart php8.0-fpm - 第五步:验证JIT状态
执行以下命令确认JIT是否正常启用:
输出为php -r "var_dump(opcache_get_status()['jit']['enabled']);"bool(true)即代表JIT已正常运行。
内容的提问来源于stack exchange,提问作者clarkk
相关产品推荐
相关产品推荐

