在 Centos 7.6 上为 PostgreSQL 安装 PHP 7.4 PDO 驱动程序

Posted

技术标签:

【中文标题】在 Centos 7.6 上为 PostgreSQL 安装 PHP 7.4 PDO 驱动程序【英文标题】:Install PHP 7.4 PDO driver for PostgreSQL on Centos 7.6 【发布时间】:2021-11-21 16:32:43 【问题描述】:

我在尝试连接到 PostgreSQL 时收到来自 PDO 的错误:

Database Connection Error: could not find driver

我运行命令安装驱动程序:

yum install php7.4-pgsql
systemctl restart httpd

还是不行。我找到了另一个可能的驱动程序:

yum install php72w-pdo
systemctl restart httpd

还是不行。检查 phpinfo() 页面未显示已安装 PostgreSQL 的 PDO 驱动程序,并且检查没有 pgsql 的输出。

php -m | grep pgsql

我也尝试在服务器上安装 PostgreSQL,但我认为我不需要,因为连接是远程服务器。我还尝试了其他教程,但大多数是针对 PHP 5 而不是针对 PHP 7.4。他们说使用命令:

yum install php-pgsql

但是这个命令会给我包冲突和所需列表的错误:

Error: Package: php-pgsql-5.4.16-48.el7.x86_64 (base)
           Requires: php-pdo(x86-64) = 5.4.16-48.el7
           Installed: php-pdo-7.4.11-1.el7.remi.x86_64 (@remi-php74)
               php-pdo(x86-64) = 7.4.11-1.el7.remi
           Available: php-pdo-5.4.16-48.el7.x86_64 (base)
               php-pdo(x86-64) = 5.4.16-48.el7
...
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

但是,我认为 Centos 7.4、PHP 7.4 不需要这些选项。

我可以从 MacOs 开发环境连接,但不能从 Centos 服务器连接。

如何安装 PDO PostgreSQL 的驱动程序?

【问题讨论】:

【参考方案1】:

原来我启用了多个版本的 PHP。 这是禁用除您想要的之外的所有内容的解决方案:

php -v
PHP 7.4.24 (cli) (built: Sep 21 2021 11:23:11) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

检查您正在运行的版本(示例 7.4)

yum-config-manager --disable 'remi-php*'
yum-config-manager --enable   remi-php74

然后安装很简单:

yum install php-pdo_pgsql
systemctl restart httpd

【讨论】:

以上是关于在 Centos 7.6 上为 PostgreSQL 安装 PHP 7.4 PDO 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

号外:CentOS 7.6 来啦~~~

CentOS 7.6镜像下载

centos 7.6安装htop

如何修改CentOS 7.6的网卡名称

非常详细的CentOS 7 安装 Elasticsearch 7.6,建议收藏

非常详细的CentOS 7 安装 Elasticsearch 7.6,建议收藏