
エックスサーバー
で、ちょっと重たい PHP スクリプトを動かした場合に「500 Internal Server Error」が出るようになった。
今までは普通に動いていたのになぜ??
Apache のエラーログを見てみる
っで、エックスサーバー
関連記事:エックスサーバーで SSH 接続が可能になりました。
エラーログには、
[Tue Dec 11 12:36:34 2012] [warn] [client xxx.xxx.xxx.xxx] mod_fcgid: read data timeout in 40 seconds
[Tue Dec 11 12:36:34 2012] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: you.php
というエラーが出てました。2つ目の「Premature end of script headers」ってのはイマイチ意味がわからん。レスポンスヘッダを書き込む前になんちゃらかんんちゃら・・
っで、1つ目の「mod_fcgid: read data timeout in 40 seconds」はどうやら mod_fcgid っていう Apache の FastCGI 用のモジュールがタイムアウトしてるっぽい。
なるほど。だから、2つ目のエラー「Premature end of script headers」(レスポンスヘッダに書き込む前に・・云々)に繋がるのか、と納得。(違うかもしれないけど)
FastCGI を停止してみた
じゃあってことで、エックスサーバー
のサーバーパネルから FastCGI を止めてみた。
結果は、ビンゴ!で、PHP スクリプトはちゃんと動きました。
ただ、やっぱり FastCGI は使いたい。WordPress が速くなるから。
うーん。どうしたものか。
でわでわ。