PHPのupload_max_file_sizeとpost_max_sizeはini_setで変更できない

実は最近まで気づかなかった・・・orz

phpでアップロードファイルサイズの許容量を5Mにしたかったのと、10M以上のファイルがアップロードされたら警告を出したかったので下記のようなコードを書いてみた。

php version 5.1.6

ini_set('upload_max_file_size','5M');
ini_set('post_max_size,'20M');
ini_set('memory_limit','32M');

echo ini_get('upload_max_file_size');
echo ini_get('post_max_size');
echo ini_get('memory_limit');

デフォルト状態での各設定値は下記の通り。
upload_max_file_size -- 2M
post_max_size -- 8M
memory_limit -- 8M

結果を見ると、こんな感じ。

2M
8M
32M

変更されてないと思って調べてみたら、まず upload_max_file_size と post_max_size はini_setで変えられない事が判明した。
http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/manual/function.ini-set.html

そしたらこうなるのも当然か・・・

ここを httpd.confかphp.iniで変えた後に、Linux & apache環境の場合はさらに下記のファイルの設定も変える必要がある。

/etc/httpd/conf.d/php.conf


SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288

これでPHPでも大きなファイルをアップロードすることができるようになるっぽい。