Я исправил эту проблему на своем Debian 6. Обычно я только что установил php5-common
пакет. После установки вам необходимо перезапустить ваш веб-сервер (apache или nginx в зависимости от того, какой вы установили). Затем я просто делаю lsof
в apache процесс id ( lsof -p process_id
) следующим образом:
sudo lsof -p 1399 #replace 1399 by your apache process id
apache2 1399 root mem REG 254,2 80352 227236 /usr/lib/php5/20090626/xmlrpc.so
apache2 1399 root mem REG 254,2 166496 227235 /usr/lib/php5/20090626/suhosin.so
apache2 1399 root mem REG 254,2 31120 227233 /usr/lib/php5/20090626/pdo_mysql.so
apache2 1399 root mem REG 254,2 100776 227216 /usr/lib/php5/20090626/pdo.so
apache2 1399 root mem REG 254,2 135864 227232 /usr/lib/php5/20090626/mysqli.so
Как вы можете видеть выше, модули устанавливаются по пути к файлу, который не известен или определяется общим путем к библиотеке: / usr/lib/php5/20090626/
. Для вашей установки он может отличаться, но только путь pdo_mysql.so, pdo.so, mysqli.so. Вот почему Drupal или любой другой движок php не может найти библиотеку и показывает эту ошибку:PDOException: could not find driver
Я просто не знаю , почему он установлен на таком странном пути, для меня это просто ошибка в библиотеке сценария установки пакета в Debian 6. Я решил проблему, создав символический для всех файлов в соответствии /usr/lib/php5/20090626/
с
/usr/lib/php5/
этой командой:
ln -s /usr/lib/php5/20090626/* /usr/lib/php5/
php.ini' file and uncomment
расширении = php_pdo_mysql.dll. The path to your
php.ini` файл можно найти, посмотрев на ваш phpinfo ().