


phpアプリケーションのファイルアップロード制限に関する資料
PHP マニュアル
http://jp2.php.net/manual/ja/index.php
php.ini ディレクティブのリスト
http://jp2.php.net/manual/ja/ini.list.php
ファイルのアップロードを制限する
http://www.atmarkit.co.jp/ait/articles/1201/30/news132.html
なるほどね
CentoOSでは /etc/php.iniで設定するがシステム全体に影響を及ぼすので.htaccessで記述するほうがスマートらしい
アップロード関連ディレクティブのデフォルト設定
; Maximum execution time of each script, in seconds
; http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
max_execution_time = 30; Whether to allow HTTP file uploads.
; http://www.php.net/manual/en/ini.core.php#ini.file-uploads
file_uploads = On; Temporary directory for HTTP uploaded files (will use system default if not
; http://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir
;upload_tmp_dir =; 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; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 2M; Maximum amount of memory a script may consume (128MB)
; http://www.php.net/manual/en/ini.core.php#ini.memory-limit
memory_limit = 128M
ここで注意なのがファイルのアップロードを制限するにも書いてあるようにupload_max_filesize値はpost_max_size値の制限を受けるってことですね
memory_limit >= post_max_size >= upload_max_filesize
http://www.php.net/manual/ja/ini.core.php#ini.post-max-size
.htaccessの記述方法はこんな感じでした
php_value max_execution_time 120
php_value memory_limit 256M
php_value post_max_size 30M
php_value upload_max_filesize 30M
設定した後はhttpdを再起動します
.htaccessを有効にするためにAllowOverride Allも忘れずに