WordPressで画面真っ白や502エラーの原因は「eAccelerator」だった

最近、WordPressを2.9系にして調子が悪い、というのを散々書いてきた。

どんなことが発生していたかというのは、上記のエントリーを参照して欲しいのだが、要するにWordPressの管理画面を表示しようとすると真っ白になったり、ktai styleでアクセスしようとしたら、502エラーが帰ってきたりと・・・・

で、WordPressのフォーラムでも質問したのですが、しばらくの間、いろいろトラブルシューティング的なことを試していました。

ググってみたら、他にも管理画面が真っ白になる、といった現象になったという人のブログの記事を見つけたので、参考にしてみた。

などなど・・・・・他はこちらのエントリーでまとめてあります。

上記のように探したトラブルシューティングをすべて試してみましたが、全部ダメ・・・

  • MySQLのデータを一回ダンプして、それを復旧させるが、ダメ。
  • index.phpのパーミッションを変更してみてもダメ。
  • 文字コードをUTF-8(BOM)にしてもダメ(というか最初からそうだし・・・)

など試したんだけど解決せず。。。

で、プラグインが何か緩衝しているのか?と思って、すべてを無効にしてもダメ・・・

プラグインディレクトリを一旦すべて削除して、プラグインを入れ直してもダメ・・・

でもですね。。。。なぜか。。。。Apacheを再起動すると24時間くらいは直るんですよ(^^;)

なんで???

で、Apacheのエラーログを見てみると・・・・

[notice] child pid XXXX exit signal Segmentation fault (11)

がめちゃめちゃ出ている!!!

これは!!!

Segmentation faultが出て、Apacheの子プロセスが頻繁に落ちている模様。

ということは、メモリーエラーか、無限ループかな?と予測しました。

そこで、php.iniの「memory_limit」を128Mまで上げてみたけどダメ。

wp-settings.phpの、

define(‘WP_MEMORY_LIMIT’, ’32M’);

の部分を128Mまで上げてみたけどダメ・・・

でも無限ループならApacheを再起動してすぐにSegmentation faultが出てもおかしくない。

と言うことはキャッシュ関係か??

でも、WordPressでWP Super Cacheも使ってないし・・・

ということで、白羽の矢がだったのは、「eAccelerator」。

eAcceleratorは、PHPスクリプトを中間コードでキャッシュし、それを読み出すことによって高速化するもの。

他にもAPCなどがありますが、当サーバではeAcceleratorを使っていました。

それで、またまだググって見ると、以下のようなエントリーが。

こ、これは!!!

ということで、このページに書いてあるように、WordPressのルートにある、「.htaccess」に以下を追加。

php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0

この構文で、.htaccess以下ではeAcceleratorを無効にします。

すると・・・・・

ビンゴ!!!

Segmentation faultが出なくなりました!!!

直った!!!!

長かった・・・・・(ToT)



“WordPressで画面真っ白や502エラーの原因は「eAccelerator」だった” への5件の返信

  1. ピンバック: WP3.1 | 日々mnagaku

コメントを残す

メールアドレスが公開されることはありません。

*