MacPorts重装PHP后phpMyAdmin提示缺iconv、openssl扩展如何排查
排查步骤
- 首先确认Apache加载的PHP扩展和命令行环境是否一致
命令行执行php -m查询的是CLI模式的PHP配置,和Apache调用的PHP环境通常相互独立。你可以在phpMyAdmin存放目录/opt/local/www/apache2/html下新建info.php文件,写入内容<?php phpinfo(); ?>,通过浏览器访问该文件,查看Loaded Configuration File对应的php.ini路径,以及iconv、openssl两个扩展是否显示为启用状态。 - 安装MacPorts对应PHP版本的缺失扩展
MacPorts的PHP扩展为独立分包,默认不会随PHP核心安装。对应你安装的PHP版本执行对应的安装命令即可:
PHP 7.4执行:sudo port install php74-iconv php74-openssl
PHP 8.0执行:sudo port install php80-iconv php80-openssl
安装完成后执行sudo port reload apache2重启Apache生效。 - 验证扩展配置是否开启
从info.php页面获取到Apache加载的php.ini路径后,打开该文件确认以下配置没有被注释(行首没有;):
注意不要修改CLI模式对应的php.ini文件,修改后需再次重启Apache。extension=iconv.so extension=openssl.so - 处理Composer平台检查误报
如果确认两个扩展均已在web环境启用仍然报错,可进入phpMyAdmin根目录,编辑composer.json文件,在config配置段添加"platform-check": false关闭平台检查;如果是源码版phpMyAdmin,也可执行composer install --ignore-platform-reqs重新安装依赖跳过校验。 - 验证phpMyAdmin版本兼容性
低于5.1版本的phpMyAdmin不兼容PHP 8.0,低于4.9版本的phpMyAdmin不兼容PHP 7.4,如果你使用的phpMyAdmin版本过旧,直接替换为对应PHP兼容的新版本即可,操作前注意备份config.inc.php配置文件。
内容的提问来源于stack exchange,提问作者Peter Wiley
相关产品推荐
相关产品推荐

