テックブログ

技術ネタ

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サービスを再起動させて改めてアップロードしてみると上手くいきました。

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください