Laravel Forge卸载Blackfire后报无法加载blackfire.so错误如何解决
根因说明
Laravel Forge 触发Blackfire卸载流程时,仅会删除扩展本体文件,不会自动清理PHP扩展加载目录下的独立配置片段。PHP启动时除了加载主php.ini外,会自动扫描配置中指定的扩展配置目录下所有.ini文件,残留的Blackfire加载配置指向已删除的blackfire.so文件,就会触发该启动警告。仅检查主php.ini找不到相关引用是正常的。
修复操作步骤
- 定位所有残留配置
执行全局搜索命令,遍历所有PHP版本的配置目录,找出所有引用blackfire.so的文件:
输出结果中的文件路径就是残留的Blackfire配置,通常位于对应PHP版本的grep -r "blackfire.so" /etc/php/mods-available目录,以及cli/fpm模式下conf.d目录的软链接文件。报错路径中的20190902是PHP 7.4的扩展版本标识,优先检查PHP 7.4的配置。 - 清理残留配置
优先使用PHP官方扩展管理命令禁用,避免手动删错文件:
如果执行命令提示找不到Blackfire扩展,直接删除上一步grep搜索到的所有Blackfire相关# 替换7.4为你实际使用的PHP版本,cli,fpm对应命令行和FPM两种运行模式 phpdismod -s cli,fpm -v 7.4 blackfire.ini文件和对应软链接即可。 - 重启服务生效
重启对应版本的PHP-FPM服务(Forge默认使用PHP-FPM),以及配套的Web服务:# 重启PHP7.4-FPM,替换为实际版本 systemctl restart php7.4-fpm # 用Nginx就执行 systemctl restart nginx # 用Apache就执行 systemctl restart apache2 - 验证修复
命令行执行php -v,确认输出中没有Blackfire相关的加载警告;再访问站点触发请求,确认Sentry不再上报该错误即可。
注意:如果服务器上运行了多个PHP版本,需要对每个版本都执行上述检查和清理操作,避免其他版本残留配置持续报错。
内容的提问来源于stack exchange,提问作者Matanya
相关产品推荐
相关产品推荐

