【Docker】phpMyAdminでインポート時にファイルサイズでエラーが出る場合の対処方法
DockerでphpMyadminでデータベースをインポートする際に以下のエラーが出ることがある。
Warning: POST Content-Length of 2510244 bytes exceeds the limit of 2097152 bytes in Unknown on line 0
phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
session_start(): Session cannot be started after headers have already been sent
Cannot modify header information - headers already sent
この場合の対処方法を紹介します。
原因
phpMyadminの最大アップロードサイズの設定が小さいことが原因
以下の画像のようにインポートする際のアップロードファイルは初期設定では"最長: 2,048KiB"となっている。
ちょっとしたWordPressのサイトのDBを丸ごとインポートするとあっという間にサイズオーバーになる。
対処方法
docker-compose.ymlのphpmyadminのenvironment(環境変数)に以下を加える。64Mの所は適宜変えてください。
UPLOAD_LIMIT=64M
サンプルとして修正後はこんな感じ(7行目の部分を追加)
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_HOST=sample
- PMA_USER=root
- PMA_PASSWORD=password
- UPLOAD_LIMIT=64M
ports:
- 7777:80
volumes:
- pma-session-store:/sessions
これだけでファイルサイズのエラーは解消!
おまけ
その他にも以下の設定を変更できる。
UPLOAD_LIMIT=64M #アップロードするファイルサイズの上限
MEMORY_LIMIT=128M #使用するメモリの上限
MAX_EXECUTION_TIME=180 #実行時間の上限
さらにおまけ
phpmyadminの設定ファイルはコンテナ内の以下のファイルのパスにある。
ここに環境変数が用意されている。
/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
allow_url_fopen=Off
max_execution_time=${MAX_EXECUTION_TIME}
max_input_vars=10000
memory_limit=${MEMORY_LIMIT}
post_max_size=${UPLOAD_LIMIT}
upload_max_filesize=${UPLOAD_LIMIT}
ディスカッション
コメント一覧
まだ、コメントがありません