phperなら何度もつまずく! phpmyadminで巨大ファイルの扱いでエラーが出たときに見るべき設定4箇所
新環境構築時くらいしかいじらない部分なので、あらためてメモ。
1.サイズ的問題の解決
エラー例
アップロードしようとしたファイルが大きすぎるようです(phpmyadmin)
php.iniで以下の設定値を変更し、apacheを再起動します。
- upload_max_filesize
- memory_limit
- post_max_size
この3つのサイズの大小関係は、
memory_limit ≧ post_max_size ≧ upload_max_filesize
にする必要があります。
2.時間的問題の解決
エラー例
Maximum execution time of 60 seconds exceeded in ...
php.iniで以下の設定値を変更し、apacheを再起動します。
- max_execution_time
デフォルトは60秒となっていますが、例えば3分にした場合は以下のようにします。
max_execution_time = 180;
制限自体を設けたくない場合は0とします。
max_execution_time = 0;
なお、max_execution_timeに関してはphpスクリプト内で以下のように指定することも可能。
set_time_limit(60);
上記のようにphp.iniでリミットを外したにも以下のエラーがでる場合
Maximum execution time of 300 seconds exceeded in ...
今度はphp.iniではなく、phpmyadminの方の設定ファイルを見直します。
pypmyadmin\libraries\config.default.phpの635行目、ExecTimeLimitがデフォルトでは300秒になっているので、そこを修正します。
これも、制限自体をなくしたい場合は0とします。
$cfg['ExecTimeLimit'] = 0;
以上、自戒の念をこめて。
あわせて読みたい
PHPでMaximum execution time of 60 seconds exceededのエラー - TechNoteMaximum execution time of 60 seconds exceededが出てプログラムが終了する場合はphp.iniにて下記を書き換える。時...
PHP+ACCESSでの文字化けについて - TechNoteAccessとの入出力は全てShift-JISになる。ほとんどの場合、結果取得やデータ更新時は文字エンコードが必要。テーブルより取得したデータを画面表示する前$...