「PHP Warning: PHP Startup: Unable to load dynamic library」の対処法
本日、何げなくサーバー(さくらのレンタルサーバー)のアクセスログを見ていたら、
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/php_pdo_pgsql.dll' - Cannot open "/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/php_pdo_pgsql.dll" in Unknown on line 0, referer: http://〇〇〇/
のようなエラーが1000件(1000件しか表示されないので、おそらく1000件以上)表示されていました。
エラー文の意味は?
このエラーの原因ですが、エラー文を訳せば簡単でした。
PHP Startup: Unable to load dynamic library '/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/php_pdo_pgsql.dll'
→PHPの実行時に「/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/php_pdo_pgsql.dll」というモジュールがロードできない。
Cannot open "/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/php_pdo_pgsql.dll" in Unknown on line 0
→不明な0行目(?)で「/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525/php_pdo_pgsql.dll」というモジュールを開けない。
検証
さくらのレンタルサーバーは独特で、FFFTPでアクセスすれば自分の専用スペースより上位のディレクトリに移動でき、ファイルの探索ができます。
そのため、「/usr/local/php/5.4/lib/php/extensions/no-debug-non-zts-20100525」にアクセスしたのですが、このディレクトリには
- imagick.so
- oauth.so
しかなく、確かに「php_pdo_pgsql.dll」と「php_pdo_pgsql.dll」はありませんでした。
原因は?
存在しないファイルを読み込もうとすれば、エラーが起きるのは当然ですが、何で存在しないファイルを読み込もうとしているの?ってことで色々と調べた結果、
php.iniに
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
という設定を行っていたからでした。
MySQLにアクセスする設定
何だこれ?と思ったのですが、だいぶ前に「エックスサーバーのMySQLに外部サーバーから接続する方法」にあるように、エックスサーバーにあるMySQLにサーバー(ライトプラン)からアクセスを行うために設定したものでした。
なので、この4行を削除することで、上記エラー文は消えました。
あわせて読んでほしい!
コメント
まだコメントはありません。