я только установил Ubuntu Server 16.04 с Nginx, и я установил PHP таким образом:Uncaught PDOException: не удалось найти драйвер
sudo apt-get install php7.0-cli php7.0-cgi php7.0-fpm php7.0-curl
И MySql я установил Percona, таким образом:
apt-get install percona-server-server-5.7 percona-server-client-5.7
, но я не могу понять, почему я не могу использовать PDO в моем PHP скрипт, это мой код:
$db = new PDO("mysql:dbname=db;host=localhost;charset=utf8", "username", "password");
Я получаю эту ошибку:
Uncaught PDOException: could not find driver
Я искал в Интернете, и я обнаружил, что я раскомментировать эту строку в Windows, в php.ini:
;extension=php_pdo_mysql.dll
или эту линию на Linux:
;extension=php_pdo_mysql.so
Я проверил мой php.ini в:
/etc/php/7.0/fpm/php.ini
и у меня есть файл .dll
, а не файл .so
, я также не могу понять, почему у меня есть dll, а не так. Во всяком случае, разрешить этот файл .dll и перезапустить php ничего не изменится. Кто-нибудь может мне помочь?
Благодаря
Вы говорите, что у вас есть файл 'pdo_mysql.dll' на вашей файловой системе Linux? Или вы просто говорите, что можете найти комментарий '; extension = pdo_mysql.dll' в файле php.ini? Бесполезные комментарии не имеют значения. Они ничего не значат. Вам просто нужно добавить эту строку в свой php.ini. – Sherif
Я нахожу только эту строку на своем php.ini, так что я должен добавить его? Или я должен установить пакет, написанный в ответе ниже? – Piero
Правильно, строка, найденная вами в файле php.ini в качестве комментария, ничего не значит. Это просто комментарий. Добавляете ли вы строку или нет, вам все равно нужно установить правильный пакет через менеджер пакетов или скомпилировать расширение самостоятельно, чтобы загрузить его на PHP. В вашем случае это будет 'php7.0-pdo-mysql' – Sherif