17時03分04秒 [Web関連]
ウェブサーバ(Apache)のエラーログを眺めていると、「ioncube_loader_fre_5.2.so」というファイルの読み込みに失敗したというログが大量に出ていることに気づきました。
エラーログには、
Failed loading /home/username/www/freshreader/ioncube/ioncube_loader_fre_5.2.so: Cannot open "/home/username/www/freshreader/ioncube/ioncube_loader_fre_5.2.so"
という1行のエラーが山のように記録されていました。
見れば「freshreader」というディレクトリに格納されているioncube関連ファイルを読もうとしていることは分かるのですが、実はこの「freshreader」ディレクトリは既に削除済みなので存在しません。
にもかかわらず、このファイルへのアクセスが大量に存在するのが不思議でした。
エラーログの各行に出ているrefererが様々(google.co.jpなどもある)ので、「外部のどこかのサイトから直接リンクでもされているのかな……?」とも思ったんですが、その場合は上記のような「Failed loading」とか「Cannot open」みたいなエラーにはなりません。
試しにブラウザでこの「ioncube_loader_fre_5.2.so」の位置(URL)にアクセスしてみると、エラーログには、
File does not exist: /home/username/www/freshreader
というエラーが記録されました。つまりファイルに到達する前にそもそもディレクトリが存在しないよ、というエラーが出てくるんですね。
とすると、余計に謎です。
エラーログをもっと調べていくと、どうやらWordPressで生成しているページにアクセスされたときにエラーが出ているっぽいことが分かりました。
つまり、PHPですね。
PHPが実行されるたびにこのエラーが出てくるようです。
php.iniファイルにioncube_loader_fre_5.2.soを読む記述が存在した
いろいろ調べた結果、PHPの設定ファイルである「php.ini」ファイル内に、以下の記述が残っていたことが原因だと分かりました。
zend_extension = /home/username/www/freshreader/ioncube/ioncube_loader_fre_5.2.so
なるほど。
この記述があるから、PHPが実行されるたびに(つまりWordPressにアクセスされるたびに)「ioncube_loader_fre_5.2.soが読めないぞ」というエラーが出ていたんですね。
php.iniから上記の行を削除すると、このエラーは一切発生しなくなりました。
たぶん、freshreader(※既に開発が停止されているRSSリーダー)を導入する際に、php.iniファイルに上記の1行が加えられてしまっていたのでしょうね。
まさかそんなところが書き換わっていたとは。^^;
というわけで、もしApacheのエラーログに「ioncube_loader_fre_5.2.so」が読めないと記録されるようなら、サーバ上の「php.ini」ファイルを覗いてみて下さい、という話でした。