#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