hello foo bar Saba note | upload_max_filesizeの設定 PHPのアップロードサイズを調整する

upload_max_filesizeの設定 PHPのアップロードサイズを調整する

2016.11.7 (月)

php.iniで設定する

PHPのアップロードサイズは、php.iniの設定を見るとデフォルトでは、

; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 2M

となっていて2Mなんですね。php.iniの877行目辺りです。
普通に画像とかファイルとかをあげるにはまあまあなサイズですが、用途によっては全然足りないです。なので、ここでアップロードサイズを大きくしてあげます。
Ubunutuとかだと、/etc/php5/apache2/php.iniで、CentOSとかだと/etc/php.iniぐらいにあるかと思います。
で、このサイズの調整は8Mまでがマックスで、これ以上の値を設定する際には、post_max_sizeも変更します。
post_max_sizeはその名の通り、POSTする値の全体のサイズなので、upload_max_filesizeは、post_max_sizeの中の一部になります。なので、post_max_sizeは常にupload_max_filesizeより大きくしないとダメです。
728行目辺りに、

; Maximum size of POST data that PHP will accept.
; http://www.php.net/manual/en/ini.core.php#ini.post-max-size
post_max_size = 8M

という風にこちらは8Mになっているわけです。
なので、

post_max_size = 32M
…
upload_max_filesize = 16M

みたいな感じで設定します。php.iniを変更したらApacheの再起動は必要なのかな。
最終的には、

memory_limit = 512M
post_max_size = 256M
upload_max_filesize = 128M

というような設定でよいのでは。

.htaccessで設定する

.htaccessで設定する場合は、php_valueにパラメータを与えてあげます。個別に設定できるのでこちらの方がよいかもです。

php_value post_max_size "32M"
php_value upload_max_filesize "16M"

という風に書いてPHPの実行ファイルと同じ場所においておけばいいです。ちなみになのですが、ini_set()ではこの値の変更はできないです。