ファイルが重すぎてアップロード出来ない時のphp.iniの設定

Programming

WordPressやEC-CUBEなどのCMSを使用している中でファイルが重すぎてアップロードが出来ない場合に考えられる理由はphp.iniの設定による制御が考えられます。

例えば、1Gを超える動画をアップロードしようとしたらエラーが出てアップ出来ない場合や、自動アップロードを実行するスクリプトが失敗するなどに関しては、ファイルが重すぎたりプログラムの実行時間が長すぎたりするのが原因でしょう。

そこで今回の記事では、ファイルサイズや実行時間に関する設定が可能なphp.iniに関しての設定を紹介します。

ファイルが重すぎてアップロード出来ない時のphp.iniの設定

php.iniでよく弄る設定は以下の5つです。

名前意味
max_execution_timeスクリプトの最大実行時間
max_input_timeファイルのアップロード時間
post_max_sizeファイルの最大サイズ
upload_max_filesizeアップロードの最大サイズ
memory_limit最大メモリ
*file_uploadsをオンにしている前提

基本的に以下の記述で困る事は少ないとは思いますが、これでもエラーが出る場合は次の解説で理解して下さい。

  post_max_size = 1G
  upload_max_filesize = 1G
  memory_limit = 1G
  max_execution_time = 180
  max_input_time = -1

ファイルが重くてアップロード出来ない原因は「max_input_time」「post_max_size」「upload_max_filesize」が関係しています。

「max_input_time」はスクリプトの最大実行時間を表し、-1にすれば制限無しになります。「max_input_time = 300」とすれば300秒でスクリプトは停止します。なのでそれまでに処理を終える必要があります。

「post_max_size」は保存できるファイルサイズです。「upload_max_filesize」はアップロードできるファイルサイズです。どちらも「M」もしくは「G」の単位を使用します。

「post_max_size」と「upload_max_filesize」は重複しているように感じられますが意味が違います。

例えば「post_max_size」が300Mで「upload_max_filesize」が2Gだった場合、2Gのファイルまでアップロードの実行は可能だが300Mのファイルまでしか保存できないので結果エラーになります。もちろん反対も然りです。

php.iniの設定場所

php.iniの設定をする時はphp.iniファイルを作成してサーバーにアップします。ただ現在のレンタルサーバー にはpnp.iniの設定ページが個別に用意されているので、そこから設定するのが良いでしょう。

エックスサーバーを例にすると、サーバーパネルの以下の部分から設定が出来ます。

エックスサーバーの場合は以下のように設定画面が丁寧に用意されているので、ON/OFFを切り替えるか、数値を弄るだけで設定出来ます。

サーバーの中にはphp.iniに関してのページはあるが、実際の記述は自分で行わないといけない場合もあります。その場合は先に紹介したように記述すればOKです。


以上が「ファイルが重すぎてアップロード出来ない時のphp.iniの設定」でした。

最後に、php系を弄る時は、確かな知識を持ってから編集するようにしましょう。間違った記述をするとエラーなどが起こるトリガーになってしまいます。

今回参考にさせて頂いた記事は以下の記事です。
http://www.maidsphere.jp/archive/PHPでファイルをアップロードするときの設定

Programmingphp,WEB

Posted by KT