TechNote

とあるエンジニアのただのメモ

phperなら何度もつまずく! phpmyadminで巨大ファイルの扱いでエラーが出たときに見るべき設定4箇所

新環境構築時くらいしかいじらない部分なので、あらためてメモ。

f:id:kojikoji75:20140113192143j:plain


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 COMでExcel操作例 - TechNotePHP COMでExcel操作例 - TechNote

// EXCELインスタンス作成$excel = new COM("excel.application") or die;$excel->DisplayAle...

PHPでMaximum execution time of 60 seconds exceededのエラー - TechNotePHPでMaximum execution time of 60 seconds exceededのエラー - TechNote

Maximum execution time of 60 seconds exceededが出てプログラムが終了する場合はphp.iniにて下記を書き換える。時...

PHP+ACCESSでの文字化けについて - TechNotePHP+ACCESSでの文字化けについて - TechNote

Accessとの入出力は全てShift-JISになる。ほとんどの場合、結果取得やデータ更新時は文字エンコードが必要。テーブルより取得したデータを画面表示する前$...

PHPからAccessデータベースの使用 - TechNotePHPからAccessデータベースの使用 - TechNote

PHPからAccessのデータベース(mdb)を利用するにはODBC経由での接続が必要。ODBCの設定手順1.「コントロールパネル」→「管理ツール」→「データソ...