Я виправив цю проблему на своєму 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 ().