「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行を削除することで、上記エラー文は消えました。

 

頑張って書いたのでちょろっと読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント