运行./yii2 serve时遇PHP启动警告:无法加载pdo_mysql动态库
解决PHP启动时无法加载pdo_mysql动态库的问题
针对执行./yii2 serve时遇到的PHP启动警告(无法加载pdo_mysql动态库,提示undefined symbol: pdo_parse_params等错误),可按以下步骤排查解决:
第一步:确认pdo_mysql扩展已正确安装
执行命令检查扩展是否存在:php -m | grep pdo如果输出中没有
pdo_mysql,根据系统安装对应扩展:- Debian/Ubuntu系:
指定PHP版本(如8.1)则用:sudo apt install php-pdo-mysqlsudo apt install php8.1-pdo-mysql - CentOS/RHEL系:
sudo yum install php-pdo-mysql
- Debian/Ubuntu系:
第二步:调整扩展加载顺序
undefined symbol: pdo_parse_params错误说明pdo核心扩展未先于pdo_mysql加载:- 找到PHP配置文件路径:
php --ini - 打开主配置文件
php.ini,确保extension=pdo.so在extension=pdo_mysql.so之前(若配置中存在这两行)。 - 若使用单独的扩展配置文件(如
/etc/php/[版本]/cli/conf.d/下的文件),保证pdo的配置文件(如20-pdo.ini)文件名前缀数字小于pdo_mysql的(如30-pdo_mysql.ini),确保加载顺序正确。
- 找到PHP配置文件路径:
第三步:验证扩展文件的存在性与权限
- 找到PHP扩展目录:
php -i | grep "extension_dir" - 检查该目录下是否存在
pdo_mysql.so,不存在则重新安装扩展;存在则修复权限:
(替换路径为实际的扩展目录)sudo chmod 644 /usr/lib/php/20210902/pdo_mysql.so
- 找到PHP扩展目录:
第四步:测试修复效果
重新执行./yii2 serve,检查警告是否消失。若使用PHP-FPM,需先重启服务:sudo systemctl restart php[版本]-fpm
内容的提问来源于stack exchange,提问作者Godfrey Temu
相关产品推荐
相关产品推荐

