Я исправил эту проблему в своем Debian 6.
Обычно я только что установил php5-common
пакет. После установки вам необходимо перезапустить ваш веб-сервер (apache или nginx в зависимости от того, какой вы установили).
Затем я просто делаю lsof
для идентификатора процесса apache (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/