迁移至虚拟主机后PHP启动无法加载pdo_mysql.so动态库如何解决?
嘿,这个问题我在cPanel环境下碰到过好多次,尤其是项目迁移后容易出现。咱们一步步来排查解决:
解决PHP 5.6无法加载pdo_mysql.so的问题
1. 先确认pdo_mysql扩展是否已安装
错误提示说文件找不到,首先得确认这个扩展有没有真的装在服务器上:
- 如果你用cPanel面板,登录后找到Select PHP Version工具,在扩展列表里找
pdo_mysql选项。如果没勾选,直接勾选后保存,面板会自动帮你安装并配置好扩展。 - 如果你有SSH权限,也可以用命令行检查:
如果没有任何输出,说明扩展没安装,运行下面的命令安装依赖包:/opt/cpanel/ea-php56/root/usr/bin/php -m | grep pdo_mysql
(pdo_mysql依赖mysqlnd驱动,所以这两个包都要确保安装)/usr/local/cpanel/scripts/check_cpanel_rpms --fix --rpm ea-php56-php-pdo /usr/local/cpanel/scripts/check_cpanel_rpms --fix --rpm ea-php56-php-mysqlnd
2. 检查php.ini的扩展配置是否正确
有时候扩展装了,但配置文件里的路径写错了:
- 先找到PHP 5.6对应的php.ini文件,运行命令:
找到/opt/cpanel/ea-php56/root/usr/bin/php --iniLoaded Configuration File对应的路径(比如/opt/cpanel/ea-php56/root/etc/php.ini)。 - 打开这个文件,搜索
extension=pdo_mysql.so:- 如果这一行不存在,手动添加
extension=pdo_mysql.so(不需要绝对路径,只要extension_dir配置正确的话); - 如果写了绝对路径,确认路径是
/opt/cpanel/ea-php56/root/usr/lib64/php/modules/pdo_mysql.so,如果文件实际不在这个位置,检查extension_dir配置项是否指向正确的模块目录:extension_dir = "/opt/cpanel/ea-php56/root/usr/lib64/php/modules/"
- 如果这一行不存在,手动添加
- 修改后保存,重启PHP-FPM或者Apache服务(根据你的运行环境选择)。
3. 修复损坏或缺失的PHP文件
迁移过程中可能导致部分文件丢失或损坏,用cPanel的rpm修复工具一键修复:
/usr/local/cpanel/scripts/check_cpanel_rpms --fix
这个命令会扫描所有cPanel相关的rpm包,自动修复损坏、缺失的文件,包括PHP扩展文件。
4. 建议:升级PHP版本(如果项目兼容的话)
PHP 5.6已经停止官方支持很多年了,安全性和性能都很差。如果你的项目代码兼容更高版本,建议直接在cPanel的Select PHP Version里切换到PHP 7.4或8.1这类稳定版本——这些版本默认就会安装好pdo_mysql扩展,还能避免很多老旧版本的安全问题。
内容的提问来源于stack exchange,提问作者saim
相关产品推荐
相关产品推荐

