Debian 6でこの問題を修正しました。通常、php5-common
パッケージをインストールしたばかりです。インストール後、Webサーバーを再起動する必要があります(インストールしたサーバーに応じて、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
extension = php_pdo_mysql.dllを見てください. The path to your
。php.ini`ファイルは、phpinfo()で確認できます。