Laravel5.8连接PostgreSQL报Doctrine\DBAL\Driver\PDOException找不到驱动如何解决
解决方案
核心根因
你修改的是XAMPP对应Apache的PHP配置,执行php artisan命令调用的是系统命令行的PHP,二者使用独立的配置文件,且你配置的扩展后缀是Windows系统的.dll,不符合Mac系统要求。
操作步骤
- 定位命令行PHP的配置文件路径
执行以下命令,查看Loaded Configuration File对应的路径,这才是需要修改的配置文件:
php --ini
- 修改配置文件中的扩展配置
Mac系统的PHP扩展后缀为.so,将你之前写的.dll配置替换为以下内容:
extension=pdo_pgsql.so extension=pgsql.so
- 验证扩展是否加载成功
执行以下命令,如果输出pdo_pgsql和pgsql两个条目,说明扩展配置生效:
php -m | grep pgsql
如果无输出,说明系统PHP未安装pgsql扩展,执行对应版本的扩展安装命令即可,例如你使用PHP7.3的话执行:
brew install php@7.3-pgsql
- 匹配兼容的依赖版本
Laravel 5.8不支持高版本的doctrine/dbal,指定安装兼容版本:
composer require doctrine/dbal:^2.9
- 清理项目缓存后测试启动
php artisan config:clear php artisan serve
额外说明
php artisan serve调用的是PHP内置开发服务器,和XAMPP的Apache服务完全无关,不需要浪费时间排查Apache启动问题。
内容的提问来源于stack exchange,提问作者CasaCoding
相关产品推荐
相关产品推荐

