Cpanel部署Laravel项目出现could not find driver(SQL)错误如何解决?
修复Cpanel环境下Laravel项目"could not find driver(SQL)"报错方案
- 第一步:核对PHP版本与扩展匹配关系
Cpanel支持多版本PHP共存,大部分勾选扩展后不生效的问题都来源于版本不匹配:你在PHP 8.1的扩展管理页勾选了pdo_mysql,但Laravel项目实际绑定的是其他PHP版本。
验证方法:在Laravel项目的public目录下新建phpinfo.php文件,写入代码:
访问该文件查看顶部标注的当前PHP版本,再回到Cpanel的「选择PHP版本」页面,切换到对应版本后重新确认pdo_mysql扩展已勾选。<?php phpinfo(); ?> - 第二步:强制刷新PHP扩展配置
版本确认无误后仍不生效的,可通过重选扩展触发配置刷新:在Cpanel「PHP选择器」页面先取消勾选pdo_mysql,保存配置后等待1分钟,再重新勾选pdo_mysql保存。
如果你有服务器root权限,可直接重启对应版本的PHP-FPM服务生效,命令示例(以PHP 8.1为例):systemctl restart ea-php81-php-fpm - 第三步:修正Laravel数据库配置
确认项目根目录.env文件的配置项符合要求:- 数据库驱动填写正确:
DB_CONNECTION=mysql - 部分Cpanel环境禁用localhost的socket连接,可尝试将
DB_HOST=localhost改为DB_HOST=127.0.0.1测试
- 数据库驱动填写正确:
- 第四步:验证扩展实际加载状态
phpinfo页面显示pdo_mysql相关值为0/0属于统计值异常,不代表扩展未加载,可以在项目根目录新建test_pdo.php文件验证:
执行<?php var_dump(extension_loaded('pdo_mysql')); var_dump(PDO::getAvailableDrivers()); ?>php test_pdo.php或者web访问该文件,如果返回bool(true)且mysql出现在驱动列表中,说明扩展已正常工作。
如果以上操作都无法解决问题,联系你的主机服务商确认是否服务器层面禁用了pdo_mysql的依赖组件,或是MySQL socket路径与PHP默认配置不匹配。
内容的提问来源于stack exchange,提问作者kyurie
相关产品推荐
相关产品推荐

