Как решить, что драйверы PDO не имеют значения, но SQLite3 уже установлен

#php #nginx-config

#php #nginx-config

Вопрос:

php7.2-sqlite3 уже установлены, но PDO не включается.

phpinfo() показывает, что:

 PDO drivers:            no value
SQLite3 module version: 7.2.15-0ubuntu0.18.04.2
SQLite Library:         3.27.2"
 

Как я могу включить PDO?

версия nginx: nginx / 1.15.10
Ubuntu 18.04.1 LTS

Я очень новичок в PHP. Кто-нибудь может помочь мне рассказать, где находится журнал, и как я мог бы получить подробную информацию, чтобы узнать, что произошло?

Комментарии:

1. Пожалуйста, загляните в ваш файл php.ini, чтобы включить PDO — подробнее см. php.net/manual/en/configuration.file.php

2. @PowerStat, спасибо за ваш совет. Я сделал то же самое на другом сервере Ubuntu 18.04, который работает хорошо, и я мог видеть, что драйвером PDO является sqlite с phpinfo (). Но их файлы конфигурации в fpm / conf.d и php.ini точно такие же. Изменение php.ini, похоже, не решило эту проблему.

3. У меня не так много опыта работы с Ubuntu, но иногда есть файлы конфигурации shadow… но, возможно, проблема в другом.

Ответ №1:

После сравнения с этими двумя серверами их конфигурационные файлы одинаковы, но библиотеки sqlite разные. На сервере, который может работать, нет sqlite.out, он скомпилирован из официального исходного кода и имеет приоритет над любым другим, но не может работать как драйвер PDO.
Проблема была устранена путем удаления sqlite.out.

 $ dpkg -l | grep sqlite
ii  libqt5sql5-sqlite:amd64                    5.9.5 dfsg-0ubuntu1                          amd64        Qt 5 SQLite 3 database driver
ii  libsqlite3-0:amd64                         3.22.0-1                                     amd64        SQLite 3 shared library
ii  php7.2-sqlite3                             7.2.15-0ubuntu0.18.04.2                      amd64        SQLite3 module for PHP
ii  sqlite.out                                 555-1                                        amd64        sqlite3x

$ sudo apt purge sqlite.out
$ sudo systemctl restart php7.2-fpm
$ sudo nginx -s reload