Автор Тема: Конфигурирование php. Как включить pdo?  (Прочитано 675 раз)

Оффлайн ОлегК

  • Участник
  • *
  • Сообщений: 20
Не доступно расширение PDO для обеспечения доступа к БД Postgresql.
ОС Альт:Десктоп. Установлено: postgresql 16, apache, РНР 8.2. Информация о системе:
Linux vmaltws-1 6.1.79-un-def-alt1 #1 SMP PRREMPT_DYNAMIC Fri Feb 23 18:56:17 UTC 2024 x86_64 GNU/Linux
Проверяю доступность PDO с помощью следующей PHP-программы:
<?php
echo "start";
try {
$pdo = new  PDO("pgsql:host=localhost; dbname=auth_data",ххххх,"ХХХХХ");

catch (
PDException $e) {
echo 
" no connect";
}
echo 
"finish";
Результат
start
Fatal error: Uncaught Error: Class "PDO" not found in /var/www/html/index1.php:4 Stack trace: #0   {main} thrown in /var/www/html/index1.php on line 4
Библиотека php-pgsql была установлена ранее:
Спойлер
[root@vmaltws-1 html]# apt-get install php8.2-pgsql
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
  php8.2-pgsql
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 9 не будет обновлено.
Необходимо получить 0B/51,5kB архивов.
После распаковки потребуется дополнительно 148kB дискового пространства.
Совершаем изменения...
Подготовка...                           ########################################################################################## [100%]
Обновление / установка...
1: php8.2-pgsql-8.2.20-alt1             ########################################################################################## [100%]
Завершено.
Настройки PHP здесь
# php -r 'phpinfo();' | grep pdo
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pgsql.so' (tried: /usr/lib64/php/8.2.20/extensions/php_pgsql.so
(/usr/lib64/php/8.2.20/extensions/php_pgsql.so: cannot open shared object file: No such file or directory),
/usr/lib64/php/8.2.20/extensions/php_pgsql.so.so (/usr/lib64/php/8.2.20/extensions/php_pgsql.so.so: cannot open shared object file: No such
file or directory)) in Unknown on line 0
Configure Command =>  './configure'  '--build=x86_64-alt-linux' '--host=x86_64-alt-linux' '--exec-prefix=/usr' '--bindir=/usr/bin'
'--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/lib'
'--localstatedir=/var/lib' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking'
'--disable-silent-rules' '--without-included-gettext' '--prefix=/usr' '--program-suffix=8.2' '--localstatedir=/var' '--enable-inline-optimization'
'--with-config-file-path=/etc/php/8.2/' '--with-config-file-scan-dir=/etc/php/8.2/cli/php.d/' '--with-pic' '--with-password-argon2'
'--enable-rtld-now' '--enable-cli' '--disable-cgi' '--disable-debug' '--enable-safe-mode' '--disable-magic-quotes' '--disable-rpath'
'--enable-bcmath' '--enable-ctype' '--enable-ftp' '--enable-session' '--enable-shmop' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg'
'--enable-libxml' '--enable-dom' '--disable-opcache' '--enable-simplexml' '--disable-pdo' '--enable-hash' '--enable-xml' '--enable-wddx'
'--disable-fileinfo' '--disable-xmlreader' '--enable-shared' '--disable-static' '--disable-embed' '--with-layout=GNU' '--with-exec-dir=/usr/bin'
'--with-zlib=/usr' '--with-gettext=/usr' '--with-iconv' '--enable-mysqlnd=shared' '--without-mysql' '--without-openssl' '--with-mm=/usr'
'--without-sqlite' '--with-regex=php' '--without-pear' 'build_alias=x86_64-alt-linux' 'host_alias=x86_64-alt-linux'
Additional .ini files parsed => /etc/php/8.2/cli/php.d/pdo.ini, /etc/php/8.2/cli/php.d/pdo_pgsql.ini,
pdo_pgsql
Содержимое папки extensions
Спойлер
[root@vmaltws-1 html]# ll /usr/lib64/php/8.2.20/extensions/
итого 340
drwxr-xr-x 2 root root   4096 окт 16 15:15 ./
-rw-r--r-- 1 root root 147376 окт 16 15:15 pgsql.so
-rw-r--r-- 1 root root  56664 окт 15 18:12 pdo_pgsql.so
-rw-r--r-- 1 root root 134768 окт 15 18:12 pdo.so
drwxr-xr-x 3 root root   4096 окт 14 16:47 ../
Содержимое ini файлов
Спойлер
[root@vmaltws-1 html]# nano /etc/php/8.2/cli/php.d/pdo.ini

extension=pdo.so

[Pdo]
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
; http://php.net/pdo-odbc.connection-pooling
;pdo_odbc.connection_pooling=strict

;pdo_odbc.db2_instance_name
Спойлер
nano /etc/php/8.2/cli/php.d/pdo_pgsql.ini
                                               
extension=pdo_pgsql.so
Файл pdo_pgsql.so на диске не обнаружен. Прошу помочь в поиске решения данной проблемы.

Оффлайн ОлегК

  • Участник
  • *
  • Сообщений: 20
php_pgsql.so не обнаружен.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 051
    • Домашняя страница
/usr/lib64/php/7.4.33/extensions/pdo_pgsql.so   php7-pdo_pgsql
/usr/lib64/php/8.0.30/extensions/pdo_pgsql.so   php8.0-pdo_pgsql
/usr/lib64/php/8.1.29/extensions/pdo_pgsql.so   php8.1-pdo_pgsql
/usr/lib64/php/8.2.20/extensions/pdo_pgsql.so   php8.2-pdo_pgsql
Андрей Черепанов (cas@)

Оффлайн ОлегК

  • Участник
  • *
  • Сообщений: 20
/usr/lib64/php/7.4.33/extensions/pdo_pgsql.so   php7-pdo_pgsql
/usr/lib64/php/8.0.30/extensions/pdo_pgsql.so   php8.0-pdo_pgsql
/usr/lib64/php/8.1.29/extensions/pdo_pgsql.so   php8.1-pdo_pgsql
/usr/lib64/php/8.2.20/extensions/pdo_pgsql.so   php8.2-pdo_pgsql
Замечание я понял так, что необходимая библиотека представлена файлами pdo_pgsql.so, а файл php-pdo_pgsql.so не требуется.
pdo_pgsql.so имеется на диске
Цитировать
Содержимое папки extensions
Спойлер
[root@vmaltws-1 html]# ll /usr/lib64/php/8.2.20/extensions/
итого 340
drwxr-xr-x 2 root root   4096 окт 16 15:15 ./
-rw-r--r-- 1 root root 147376 окт 16 15:15 pgsql.so
-rw-r--r-- 1 root root  56664 окт 15 18:12 pdo_pgsql.so
-rw-r--r-- 1 root root 134768 окт 15 18:12 pdo.so
drwxr-xr-x 3 root root   4096 окт 14 16:47 ../
Но как заставить систему отказаться от поиска php-pdo_pgsql.so?
Нигде не могу найти строчку вроде такой
extension=php-pdo_pgsql.soдля того, чтобы ее отредактировать.
Как отменить ссылку на php-pdo_pgsql.so?

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 068
  • Дмитрий/Dmitry/德米特里/दिमित्री
Замечание я понял так, что необходимая библиотека представлена файлами pdo_pgsql.so, а файл php-pdo_pgsql.so не требуется.
pdo_pgsql.so имеется на диске
-rw-r--r--   file   /usr/lib64/php/8.2.20/extensions/pdo_pgsql.so
Имя пакета
php8.2-pdo_pgsql-8.2.20-alt1
https://packages.altlinux.org/ru/p10/files/?q=%2Fusr%2Flib64%2Fphp%2F8.2.20%2Fextensions%2Fpdo_pgsql.so
https://packages.altlinux.org/ru/p10/srpms/php8.2-pdo_pgsql/
https://packages.altlinux.org/ru/p10/srpms/php8.2-pdo_pgsql/rpms/
« Последнее редактирование: 17.10.2024 17:30:46 от gosts 87 »