Ich habe dieses Problem auf meinem Debian 6 behoben. Normalerweise hatte ich gerade installiert php5-common
Paket. Nach der Installation müssen Sie Ihren Webserver neu starten (Apache oder Nginx, je nachdem, welchen Sie installiert haben). Dann mache ich einfach ein lsof
über die Apache-Prozess-ID ( lsof -p process_id
) wie folgt:
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
Wie Sie oben sehen können, werden die Module in einem Dateipfad installiert, der nicht bekannt ist und sich nicht am allgemeinen Bibliothekspfad orientiert: / usr/lib/php5/20090626/
. Für Ihre Installation, kann es anders sein, aber nur der Pfad der pdo_mysql.so, pdo.so, mysqli.so. Das ist der Grund, warum Drupal oder eine andere php-Engine die Bibliothek nicht finden kann und diesen Fehler anzeigt: PDOException: could not find driver
Ich weiß nur nicht, warum es in einem so seltsamen Pfad installiert wird, für mich ist es einfach ein Fehler im Installationsskript für Bibliothekspakete in Debian 6. Ich habe das Problem gelöst, indem ich ein symbolisches Verzeichnis für alle Dateien unter /usr/lib/php5/20090626/
zu /usr/lib/php5/
mit diesem Befehl:
ln -s /usr/lib/php5/20090626/* /usr/lib/php5/