php -m 输出的是当前 shell 中 php 命令所指向的 CLI 环境加载的扩展,不等于网站实际运行的 PHP 版本;需用绝对路径(如 /www/server/php/82/bin/php -m)确认对应版本扩展是否启用。
php
-m 输出的是哪个环境的扩展?
输出的是当前 shell 下
命令指向的 CLI 环境所加载的扩展,**不等于你网站实际运行的 PHP 版本**。比如你在宝塔里给站点选了 PHP-82,但终端敲
显示的是系统 PATH 里的 PHP(可能是 8.1 或 7.4),结果就完全对不上。
正确做法是用绝对路径调用对应版本的 CLI:
—— 查宝塔 PHP 8.2 的 CLI 扩展
—— 快速过滤目标扩展
如果没输出,说明这个 PHP 实例根本没加载该扩展,别急着重装,先看配置
extension=redis.so 还是 extension=redis?
必须带
后缀(Linux/macOS)或
(Windows)。写成
是无效的,PHP 会静默忽略这一行,
里看不到,
里也查不到。
另外注意类型区分:
立即学习
“
PHP免费学习笔记(深入)
”;
普通扩展用
(如
)
Zend 扩展(如 opcache、xdebug)必须用
宝塔面板里“已安装”不等于“已启用”,得确认 php.ini 里写了哪一行、写在哪一版的配置文件里
为什么 phpinfo() 里看不到刚装的扩展?
最常见原因是:你访问的
页面不是当前站点所用的 PHP 版本。比如站点设置里选的是 PHP-74,但你去 PHP-82 的扩展页点了安装,或者你访问的是另一个子站的 info.php。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
验证步骤要闭环:
进宝塔 → 网站 → 你的站点 → 设置 → 看顶部“PHP 版本”下拉框选中的是什么(如
)
在该 PHP 版本的「PHP信息」页点「查看phpinfo()」,这才是真实环境
按
搜扩展名,看到 “enabled” 才算真正生效
如果搜不到,再检查
是否有对应
行,并确认 PHP-FPM 进程已重启
composer show -p 能替代 php -m 吗?
不能替代,但能互补。
显示的是 Composer 认为“当前环境支持”的平台能力,比如它看到
就认为 cURL 可用——但它不验证这个扩展是否真被 PHP 加载了。
典型误判场景:
扩展编译失败,
文件根本没生成,但
仍显示
扩展依赖的系统库缺失(如
),导致运行时动态链接失败,
不列它,
却还显示着
的结果取决于当前执行命令时的 PHP CLI 环境,和 Web 请求无关
真正要确认扩展可用,最终还得靠
+
+ 函数调用三者交叉验证。尤其上线前,别只信 composer 的乐观判断。
phpphp -m/www/server/php/82/bin/php -m/www/server/php/82/bin/php -m | grep curl.so.dllextension=redisphp -mphpinfo()extension=xxx.soextension=curl.sozend_extension=xxx.sophpinfo()PHP-82Ctrl+F/www/server/php/82/etc/php.iniextension=composer show -pext-curl.socomposer show -pext-curllibcurl4-openssl-devphp -mcomposer show -pcomposer show -pphp -mphpinfo()