Solucioné este problema en mi Debian 6. Normalmente, acababa de instalar el php5-common
paquete. Después de la instalación, debe reiniciar su servidor web (apache o nginx dependiendo de cuál instaló). Luego solo hago un lsof
id en el proceso apache ( lsof -p process_id
) como sigue:
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
Como puede ver arriba, los módulos se instalan en una ruta de archivo desconocida o guiada por una ruta de biblioteca común: / usr/lib/php5/20090626/
. Para su instalación, puede ser diferente, pero solo la ruta de pdo_mysql.so, pdo.so, mysqli.so. Entonces, esta es la razón por la cual Drupal o cualquier otro motor php no pudo encontrar la biblioteca y muestra ese error:PDOException: could not find driver
Sólo que no sé por qué se instala en un camino tan extraño, para mí es sólo un error en la biblioteca de scripts de instalación de paquetes en debian 6. He resuelto el problema mediante la creación de un símbolo para todos los archivos bajo /usr/lib/php5/20090626/
para
/usr/lib/php5/
con este comando:
ln -s /usr/lib/php5/20090626/* /usr/lib/php5/
php.ini' file and uncomment
extensión = php_pdo_mysql.dll. The path to your
El archivo php.ini` se puede encontrar mirando su phpinfo ().