画像やアイテムのアップロード時に出るエラー
FastCGI (FCGI)で先日read data timeout in 40 secondsに対処しましたが、今度は画像やアイテムのアップロード時に次のような画面になることがあります。
500 Internal Server Error
error_logを見ると、
[Mon Feb 17 12:00:00 2015] [warn] [client xxx.xxx.xxx.xxx] mod_fcgid: HTTP request length exceeds MaxRequestLen (131072), referer: https://www.markn.org/cgi-bin/...
といったエラーが出ています。
これは、FCGIがPOSTリクエストを受け付けるときに最大リクエストサイズがデフォルトで131,072バイト(128kB)になっていることが原因です。それ以上の大きさの画像やアイテムをアップロードしようとするとエラーになってしまいます。
修正方法
これでは困るので、修正します。
例により、httpd.confを修正します。
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /tmp/fcgid_sock/
IPCConnectTimeout 20
IPCCommTimeout 300
MaxProcessCount 8
DefaultMaxClassProcessCount 2
TerminationScore 10
SpawnScore 80
IdleTimeout 300
MaxRequestLen 10485760
</IfModule>
上記の赤字部分を追加します。これでリクエストの大きさが最大10MB (10485760バイト)になるので、まずたいていの画像ファイルのアップロードでエラーになることはないでしょう。もし過不足ある場合には適宜修正してください。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!