如何修复Laravel 5.4中php artisan serve启动时的PDO_MySQL加载错误
解决PHP启动时pdo_mysql相关警告的问题
嘿,我来帮你搞定这两个烦人的PHP启动警告!从你给出的错误信息来看,这俩问题其实都是环境配置不匹配导致的,一步步来就能解决:
先搞懂警告背后的原因
咱们先拆解下这两个警告:
- 第一个警告:
Unable to load dynamic library '/usr/lib/php/20151012/php_pdo_mysql.dll'- 你肯定是在Linux环境下(从
/usr/lib/php/...这个路径能看出来),但php_pdo_mysql.dll是Windows系统专属的扩展文件,Linux压根不认这个格式,所以这行配置完全是多余的,找不到文件很正常。
- 你肯定是在Linux环境下(从
- 第二个警告:
pdo_mysql.so: undefined symbol: pdo_parse_params- 这个错误说明
pdo_mysql.so扩展依赖的基础pdo.so扩展没加载,或者加载顺序不对,也有可能是pdo_mysql扩展和你的PHP版本不兼容。
- 这个错误说明
具体解决步骤
步骤1:清理php.ini里的Windows无效配置
首先找到你的PHP配置文件位置,执行命令:
php --ini | grep "Loaded Configuration File"
打开输出的那个php.ini文件,搜索extension=php_pdo_mysql.dll或者extension=pdo_mysql.dll,把这行注释掉(在前面加个;就行),然后保存退出。
步骤2:确保pdo扩展先于pdo_mysql加载
同样在php.ini里,检查扩展加载顺序:
- 必须保证
extension=pdo.so(或者有些版本是extension=pdo)在extension=pdo_mysql.so(或extension=pdo_mysql)之前加载。 - 如果找不到
extension=pdo.so,说明pdo基础扩展没安装,得先装上:
针对Debian/Ubuntu系统(你的PHP版本是20151012,对应PHP7.0)
sudo apt-get install php7.0-pdo php7.0-mysql
针对CentOS/RHEL系统
sudo yum install php-pdo php-mysql
步骤3:验证扩展是否正常加载
执行下面的命令,看看pdo和pdo_mysql有没有成功加载:
php -m | grep -E "pdo|mysql"
如果输出里能看到pdo和pdo_mysql,那就说明加载没问题了。
步骤4:重启相关服务(按需操作)
如果你的项目用的是PHP-FPM,得重启FPM服务:
# Debian/Ubuntu sudo systemctl restart php7.0-fpm # CentOS/RHEL sudo systemctl restart php-fpm
要是你只是用php artisan serve跑服务,直接关掉重新启动命令就行。
最后验证
再执行一次php artisan serve,那两个讨厌的警告应该就消失啦~
内容的提问来源于stack exchange,提问作者Amor.o
相关产品推荐
相关产品推荐

