Issue
I get the error from PDO when trying to connect to PostgreSQL:
Database Connection Error: could not find driver
I ran command to install driver:
yum install php7.4-pgsql
systemctl restart httpd
Still did not work. I found another possible driver:
yum install php72w-pdo
systemctl restart httpd
Still did not work. Checking phpinfo() page does not show PDO driver for PostgreSQL installed, and checking has no output for pgsql.
php -m | grep pgsql
I also tried installing PostgreSQL on the server, but I don't think I need since the connection is remote server. I also tried other tutorials but most are for PHP 5 and not for PHP 7.4. They said use command:
yum install php-pgsql
But this command will give me error for package conflict and list of required:
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
However, I don't think these options should be necessary for Centos 7.4, PHP 7.4.
I can connect from MacOs development environment, but not from the Centos server.
What should I do to install the driver for PDO PostgreSQL?
Solution
Turns out I had multiple versions of PHP enabled. Here is solution to disable all except for the one you want:
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
Check which version you are running (example 7.4)
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php74
Then install is easy:
yum install php-pdo_pgsql
systemctl restart httpd
Answered By - raw-bin hood