Laravel控制器连接PostgreSQL提示‘could not find driver’求助
问题解决步骤
核心原因:CLI 环境的 PHP 与 Web 服务(Apache/Nginx+PHP-FPM)使用两套独立配置,你在 CLI 下能正常操作数据库是因为已安装 PostgreSQL 驱动,但 Web 环境的 PHP 缺少对应驱动。
1. 确认 Web 环境使用的 PHP 版本
在项目根目录创建临时文件 info.php,内容如下:
<?php phpinfo(); ?>
通过浏览器访问该文件,找到「PHP Version」项,记录版本号(比如 8.1.x)。
2. 安装对应版本的 PostgreSQL PHP 驱动
根据记录的 PHP 版本执行安装命令:
# 示例:PHP 8.1 的情况 sudo apt install php8.1-pgsql # 其他版本替换版本号即可,比如 php8.2-pgsql
3. 确保驱动在 Web 环境中启用
部分系统安装后会自动启用驱动,可手动确认配置:
- 进入 Web PHP 的配置目录(以 PHP8.1-FPM 为例):
cd /etc/php/8.1/fpm/conf.d/ - 检查是否存在
20-pgsql.ini和20-pdo_pgsql.ini软链接,若没有则手动创建:sudo ln -s /etc/php/8.1/mods-available/pgsql.ini /etc/php/8.1/fpm/conf.d/20-pgsql.ini sudo ln -s /etc/php/8.1/mods-available/pdo_pgsql.ini /etc/php/8.1/fpm/conf.d/20-pdo_pgsql.ini
4. 重启相关服务
根据你使用的 Web 服务器执行对应命令:
- Nginx + PHP-FPM:
sudo systemctl restart php8.1-fpm sudo systemctl restart nginx - Apache:
sudo systemctl restart apache2
5. 验证驱动是否生效
再次访问 info.php,页面内搜索「pgsql」和「pdo_pgsql」,确认模块已加载。之后测试控制器代码,即可正常查询数据库。
内容的提问来源于stack exchange,提问作者nj167252
相关产品推荐
相关产品推荐

