php-cgiを利用して別バージョンのPHPを動作させた際に発生したアップロードエラーについて
同サーバ内で別のphpバージョンを動作させた際、wordpress上から2MBのファイルをアップロードした所、エラーが発生し、アップロード出来ませんでした。
サーバ内のphp.iniで「 memory_limit 」「 post_max_size 」「 upload_max_filesize 」の3か所を確認しましたが、30MB以上のファイルはアップロード出来るよう調整しており、設定は間違っていないはず・・・
wordpressにはデフォルトでメモリー使用量上限値が設定されているがデフォルト値は「256MB」なのでここも関係ないはず・・・
色々調べても原因が分からず、とりあえずエラーログを確認してみると下記エラーが出力されていた。
----------------------------------------------------------------------- [warn] [client ***.***.***.***] mod_fcgid: HTTP request length 132578 (so far) exceeds MaxRequestLen (131072), referer: http://exsample.com/wp/wp-admin/upload.php -----------------------------------------------------------------------
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestlen
HTTPでの最大リクエストの長さが2.3.6より前はデフォルト値が1GBだったが、現在のデフォルト値は130KB程しかないらしい。
php-cgiの設定を調整する。
# cp -ip /etc/httpd/conf.d/fcgid.conf /etc/httpd/conf.d/fcgid.conf_back # vi /etc/httpd/conf.d/fcgid.conf -------------------------------------------------- <IfModule mod_fcgid.c> FcgidMaxRequestLen 31457280 </IfModule> --------------------------------------------------
あとはapacheサービスを再起動させて改めてアップロードしてみると上手くいきました。