- pgsql.so is not loaded in PHP
- Как включить php для работы с postgresql?
- Включить PHP для работы с PostgreSQL в Apache
- How To Install php-pgsql on CentOS 7
- What is php-pgsql
- Install php-pgsql on CentOS 7 Using yum
- Install php-pgsql on CentOS 7 Using dnf
- How To Uninstall php-pgsql on CentOS 7
- php-pgsql Package Contents on CentOS 7
- References
- Summary
- how to enable php pdo driver for Postgres on Ubuntu 18.04
pgsql.so is not loaded in PHP
I’ve been tasked to create a PHP app which accesses an existing PostgreSQL database. This is my first time working with Postgre, not to mention the PHP has already been installed in the Linux box on which the app is supposed to run. I have no experience setting up this stuff, I just code. My question is that I can’t seem to get the Postgre extension working in PHP. I checked the php.ini file, there were no «extension=. » lines. So I added «extension=pgsql.so». I then checked the «extension_dir» and found that there were only 2 files in there (ldap.so, phpcups.so), I added a pgsql.so file taken from another Linux box. I restarted httpd. And it does not work. I couldn’t find any «pgsql» or «postgre» in phpinfo(). Forgive my noobness. I know too little Linux. I would really appreciate it if you can point me to the right direction. I used the suggestion given by number5: Dude, I’m on RedHat. I used the «yum» version of the command you gave, and I got this: [root@perseus ~]# yum install php-pgsql Loading «installonlyn» plugin Setting up Install Process Setting up repositories Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras error was [Errno 4] IOError: Error: Cannot find a valid baseurl for repo: extras UNFORTUNATELY, the Linux server I’m using is NOT connected to the Internet. Any other way to install?
hope you already solved your problem. If not, you can download the required rpms and install using rpm command. wget mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/… wget mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/… rpm -ivh *.rpm if it tells you that some deps are missing, you can find it here mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS the download link is assuming that your CentOS is 5.4 x86_64
Как включить php для работы с postgresql?
Используйте следующий код для подключения к серверу базы данных postgresql:
pg_connect("host=localhost dbname=dbname user=username password=password") or die("Can't connect to database".pg_last_error());
Я все еще вижу PHP Fatal error: Call to undefined function pg_connect() , хотя я знаю, что я ее раскомментировал. Идеи?
Вам нужно установить модуль pgsql для php. В debian/ubuntu есть что-то вроде этого:
sudo apt-get install php5-pgsql
Или, если пакет установлен, вам нужно включить модуль в php.ini
extension=php_pgsql.dll (windows) extension=php_pgsql.so (linux)
попробуйте сначала включить модуль, отредактировав php.ini и выполнив поиск php_pgsql, и удалите; в начале строки. Тогда вам нужно перезагрузить свой сервис.
Запуск php 7.0 — мне пришлось добавить «extension = pgsql.so» в «php.ini» = «успешно открыть базу данных» = 🙂
Я установил PHP на Windows IIS с помощью Windows Platform Installer (WPΙ). WPΙ создает инструмент «Менеджер PHP» в консоли «Менеджер информационных служб IIS». Я настраиваю PHP с помощью этого инструмента.
PDO и все основные драйверы поставляются с PHP в качестве общих расширений и просто необходимо активировать, отредактировав файл php.ini: расширение = php_pdo.dll
поэтому я активировал расширение с помощью PHP Manager, и теперь PDO отлично работает
PHP-менеджер просто добавил следующие две строки в моем php.ini, вы можете добавить строки вручную. Конечно, вы должны перезапустить веб-сервер.
[PHP_PDO_PGSQL]
расширение = php_pdo_pgsql.dll
Я установил PHP через WPI, и мне было достаточно добавить extension = php_pgsql.dll в C: \ Program Files \ PHP \ v7.1 \ php.ini в конце раздела [ExtensionList]
просто установите драйвер базы данных:
apt-get install php5-pgsql php5-mysql php5-sqlite. и так далее.
И перезагрузите конфигурацию PHP (перезагрузите apache / nginx и т. Д.) После установки новых расширений
Включить PHP для работы с PostgreSQL в Apache
В Apache я редактирую следующий файл конфигурации: C:\xampp\php.ini
Я проверяю следующие строки без комментариев:
extension=php_pgsql.dll extension=php_pdo_pgsql.dll
Наконец, перезапустите Apache, прежде чем пытаться установить новое соединение с ядром базы данных.
Кроме того, я оставляю свой код, который гарантирует, что соединение уникально:
private static $pdo = null; public static function provideDataBaseInstance() < if (self::$pdo == null) < $dsn = "pgsql:host=" . HOST . ";port=5432;dbname=" . DATABASE . ";user=" . POSTGRESQL_USER . ";password=" . POSTGRESQL_PASSWORD; try < self::$pdo = new PDO($dsn); >catch (PDOException $exception) < $msg = $exception->getMessage(); echo $msg . ". Do not forget to enable in the web server the database manager for php and in the database instance authorize the ip of the server instance if they not in the same instance."; > > return self::$pdo; >
How To Install php-pgsql on CentOS 7
In this tutorial we learn how to install php-pgsql on CentOS 7.
What is php-pgsql
The php-pgsql add PostgreSQL database support to PHP. PostgreSQL is an object-relational database management system that supports almost all SQL constructs. PHP is an HTML-embedded scripting language. If you need back-end support for PostgreSQL, you should install this package in addition to the main php package.
We can use yum or dnf to install php-pgsql on CentOS 7. In this tutorial we discuss both methods but you only need to choose one of method to install php-pgsql.
Install php-pgsql on CentOS 7 Using yum
Update yum database with yum using the following command.
After updating yum database, We can install php-pgsql using yum by running the following command:
sudo yum -y install php-pgsql
Install php-pgsql on CentOS 7 Using dnf
If you don’t have dnf installed you can install dnf first. Update yum database with dnf using the following command.
After updating yum database, We can install php-pgsql using dnf by running the following command:
sudo dnf -y install php-pgsql
How To Uninstall php-pgsql on CentOS 7
To uninstall only the php-pgsql package we can use the following command:
php-pgsql Package Contents on CentOS 7
/etc/php.d/pdo_pgsql.ini /etc/php.d/pgsql.ini /usr/lib64/php/modules/pdo_pgsql.so /usr/lib64/php/modules/pgsql.so
References
Summary
In this tutorial we learn how to install php-pgsql on CentOS 7 using yum and dnf.
how to enable php pdo driver for Postgres on Ubuntu 18.04
I installed php 7.2 and php 7.3 on Ubuntu 18.04, and created a php file to log on to and insert data into the Postgres database. My script responded «could not find driver.» Research turned up that I have to edit the php.ini files and enable the extensions for Postgres and PDO. Below are all the extension= lines in the php.ini files. The closest I could find are the pdo lines shown below.
extension=pdo_pgsql extension=pgsql
So I edited the php.ini files and removed the semi-colons from each of those lines to enable them. Then I restarted Apache2:
sudo systemctl restart apache2
But I still get «could not find driver.» This is the entire listing of extensions from the php.ini files. Which other extensions do I need to enable to allow PDO access to Postgres? php.ini 7.3
;extension=bz2 ;extension=curl ;extension=fileinfo ;extension=gd2 ;extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=interbase ;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird ;extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc extension=pdo_pgsql ;extension=pdo_sqlite extension=pgsql ;extension=shmop
;extension=bz2 ;extension=curl ;extension=fileinfo ;extension=gd2 ;extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=interbase ;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird ;extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc extension=pdo_pgsql ;extension=pdo_sqlite extension=pgsql ;extension=shmop
This is the php logon script (the logon credentials are replaced with dummy values here because I can’t reveal them):
'[IP Address]', 'user' => '[username]', 'pwd' => '[password]', 'db' => '[dbname]' ]; $dsn = sprintf('pgsql:host=%s;dbname=%s;user=%s;password=%s', $params['host'], $params['db'], $params['user'], $params['pwd']); try < $dsn = sprintf('pgsql:host=%s;dbname=%s;unix_socket=%s', $params['host'], $params['db'], $params['sock']); $opts = [PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION]; $pdo = new PDO($dsn, $params['user'], $params['pwd'], $opts); > catch (PDOException $e) < echo $e->getMessage(); > catch (Throwable $e) < echo $e->getMessage(); > ?>
Then I edited the two .ini files and added «.so» at the end of each of the two lines and restarted Apache2, but I still get the same error message. Thanks for any ideas.