php -m是最直接、最可靠的方式查看php 8.5.7当前cli环境中所有已加载(即真正生效)的扩展,需结合which php和php -i确认php路径与配置一致性,并通过php --ri、phpinfo()或宝塔面板交叉验证web环境实际状态。

PHP 8.5.7 查看已加载扩展,核心是确认“哪些扩展当前真正生效”,而不是仅看文件是否存在。由于 PHP 8.5.7 默认禁用 dl()、强化了 SAPI 隔离(CLI/FPM 独立配置),且扩展加载依赖 extension_dir 路径正确性与 .so 文件 ABI 兼容性,必须区分环境、验证状态、交叉比对。
php -m:最快查看 CLI 环境已加载扩展
这是最常用、最轻量的方式,适用于终端直查:
- 运行
php -m,输出带标题[PHP Modules]的列表,每行一个已加载扩展名(如mysqli、redis) - 注意:该命令默认调用
$PATH中首个php,需先确认路径:which php,再比对php -i | grep "Loaded Configuration File" - 快速筛选:如查 Redis 是否启用,执行
php -m | grep -i redis;排除常见内置模块可用php -m | grep -Ev "^(core|date|pcre|json|zlib|hash)$" - ⚠️ 若输出含
PHP Warning: PHP Startup: Unable to load dynamic library,说明部分扩展加载失败,此时列表不可全信,应优先排查报错项
php --ri 扩展名:精准获取指定扩展的详细状态
比 php -m 更进一步,用于验证某扩展是否不仅加载,而且功能完整:
- 执行
php --ri mysqli或php --ri opcache,将显示版本号、启用状态(mysqli support => enabled)、编译选项、指令列表等 - 若扩展未加载,会提示
Extension 'xxx' not present;若加载但初始化失败(如依赖库缺失),可能显示enabled但部分功能不可用 - 特别适合排查如
gd缺少 FreeType、intl缺少 ICU 库等隐性问题
phpinfo() 或 php -i:全局配置级交叉验证
当 CLI 和 Web 行为不一致时(常见于宝塔、Docker 或多 PHP 版本共存场景),必须用此方式确认真实运行环境:
- Web 环境:新建
info.php,内容为<?php phpinfo(); ?>,通过浏览器访问,搜索Loaded Extensions区域 - CLI 环境:直接运行
php -i,输出纯文本版 phpinfo,可配合grep -A5 -B5 "redis"定位上下文 - 关键比对点:检查
extension_dir路径是否可读、Loaded Configuration File是否为你修改的 php.ini、Scan this dir for additional .ini files下是否有冲突的覆盖配置
宝塔面板或 Web 管理界面:免命令行快速概览
适用于无 SSH 权限或运维人员需批量管理的场景:
- 登录宝塔 → 软件商店 → 找到对应 PHP 8.5.7 版本 → 点击“设置” → 切换到“安装扩展”页,状态为“已启用”的即为当前生效扩展
- 同一页面点击“PHP信息” → “查看phpinfo()”,浏览器内搜索扩展名,确认区块中明确出现
support => enabled - 注意:面板显示的是它检测到的“启用状态”,但最终以
phpinfo()输出为准;某些扩展(如swoole)需额外开启异步 IO 支持,仅勾选不一定代表完全就绪
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











