WordPress で画像をアップロードできない場合は mod_fcgid を疑え!

Linux
Linux
スポンサーリンク

つい先日 WordPress のメディアライブラリに画像ファイルをアップロードをしようとしたら「HTTP エラー」と表示され、とつぜんアップロードができなくなりました。色々調べた結果 PHP を FastCGI で動かすための Apache httpd のモジュール mod_fcgid の設定に原因がありました。そこで今回は、ファイルのアップロードができなくなった原因とその対処方法をご紹介いたします。

アップロードができなくなった原因

原因は↓これでした。mod_fcgid で扱う最大ファイルサイズの設定をしていなかったため、アップロードするファイルサイズが 131KB を超えると Apache httpd にエラーが発生していました。

mod_fcgid: HTTP request length 139253 (so far) exceeds MaxRequestLen (131072),

mod_fcgid を導入したのは数ヶ月前なのですが、普段あまり大きいサイズの画像ファイルをアップロードすることが無かったためまったく気づきませんでした。要するに、たまたま大きいファイルをアップロードしたのがエラーになっただけのことです(^^;) 画像系のプラグインを外してみたり、アップロードディレクトリの権限を確認したり小一時間ほど右往左往してました、、、

対処方法

mod_fcgid で扱う最大ファイルサイズ(request body)は FcgidMaxRequestLen ディレクティブで指定します。今回のようにこのディレクティブを設定していない場合は、初期値の 131072バイトが指定されます。

FcgidMaxRequestLen のマニュアル
https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestlen より引用

これではあまりに小さいので PHPの最大アップロードファイルサイズ(upload_max_filesize)の値とあわせておくとよいでしょう。今回は 2MB = 2097152 バイトを設定します。FcgidMaxRequestLen ディレクティブは、バーチャルホストごとに指定することもできます。

FcgidMaxRequestLen 2097152

公式マニュアル:Apache Module mod_fcgid

おわりに

FastCGI について色々調べているのですが、なかなか奥が深いです。他の mod_fcgid パラメーターについても把握しておきたいですね。

コメント

タイトルとURLをコピーしました