嘻嘻哈哈哈 發表於 2026-5-3 17:26:10

PHP宝塔安装扩展fileinfo未生效问题的解决办法

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">前言</a></li><li><a href="#_label1">应用场景</a></li><li><a href="#_label2">实现方式</a></li><li><a href="#_label3">总结</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>前言</h2>
<p>PHP开发环境经常依赖fileinfo扩展进行文件类型识别,部分场景下即使在宝塔面板中安装了fileinfo扩展,实际环境仍然无法检测到该模块,影响相关功能的正常运行。</p>
<p>本文介绍如何在宝塔面板环境中排查和解决fileinfo扩展安装后无法识别的问题,针对配置错误、路径缺失以及服务未重载等常见原因给出具体的操作方法。</p>
<p class="maodian"><a name="_label1"></a></p><h2>应用场景</h2>
<p>在使用宝塔面板为PHP环境安装fileinfo扩展后,系统依然无法识别该扩展,相关功能报错提示fileinfo未加载或未启用。常见现象包括即使在扩展管理界面显示已安装,实际在命令行或应用中检测不到fileinfo模块,导致文件类型识别等依赖fileinfo的功能无法正常使用。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120908284968.png" /></p>
<p>对于配置来说默认的是这样的,这种情况通常与扩展路径配置、文件缺失或服务未正确重载有关。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120908284986.png" /></p>
<p class="maodian"><a name="_label2"></a></p><h2>实现方式</h2>
<p><strong>swoole_loader_74_nts.soextension 错误</strong></p>
<p>配置文件中的 <code>swoole_loader_74_nts.soextension</code> 语法不正确。应删除 <code>soextension</code> 并只保留 <code>.so</code> 文件扩展名。需要修改这行:</p>
<div class="jb51code"><pre class="brush:php;">extension=swoole_loader_74_nts.soextension = /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/igbinary.so
</pre></div>
<p>为:</p>
<div class="jb51code"><pre class="brush:php;">extension=swoole_loader_74_nts.so
</pre></div>
<p>确保其他扩展路径也正确,且没有重复的部分。</p>
<p><strong>fileinfo.so 扩展已配置</strong></p>
<p>在配置中,已经添加了 <code>fileinfo.so</code> 扩展:</p>
<div class="jb51code"><pre class="brush:php;">extension = /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/fileinfo.so
</pre></div>
<p>不需要做任何更改,但请确保该文件实际存在于指定路径中。如果路径正确 <code>fileinfo</code> 扩展应该已经启用。</p>
<p><strong>重新加载 PHP 服务</strong></p>
<p>在修改完配置文件后,需要重新加载 PHP 服务以应用更改:</p>
<p><strong>通过宝塔面板</strong> 点击 <strong>重载</strong> 或 <strong>重启 PHP</strong>。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025120908284933.png" /></p>
<p><strong>通过命令行</strong>,使用以下命令重新启动 PHP-FPM 服务:</p>
<div class="jb51code"><pre class="brush:php;">service php7.4-fpm restart
</pre></div>
<p><strong>确认扩展是否加载</strong></p>
<p>完成上述步骤后,可以通过以下命令确认 <code>fileinfo</code> 扩展是否成功加载:</p>
<div class="jb51code"><pre class="brush:php;">php -m | grep fileinfo
</pre></div>
<p>如果看到 <code>fileinfo</code> 列表输出,说明扩展加载成功。</p>
<p class="maodian"><a name="_label3"></a></p><h2>总结</h2>
<p>配置错误、扩展路径不正确和服务未重载是导致fileinfo扩展无法识别的常见问题。对配置文件中的扩展名称和路径进行检查,及时修正格式及文件位置,能显著提升问题排查效率。重载PHP服务后,再通过命令行确认扩展状态,有助于确保修改生效。</p>
<p>针对日常PHP环境管理,合理检查扩展状态并掌握常用排障手段,将为后续开发和运维提供更稳定的支持。不断积累相关经验,有助于提升解决环境问题的效率。</p>
頁: [1]
查看完整版本: PHP宝塔安装扩展fileinfo未生效问题的解决办法