【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」
こんにちは!
インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。
今回は、「【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」」について紹介したいと思います。
「phpMyAdmin」で大容量のCSVがインポートすると「504 Gateway Timeout」で失敗する
大容量のCSVをphpMyAdminにインポートした際にしばらくすると以下のように「504 Gateway Timeout」と表示されてしまい、中途半端な状態でインポートされると思います。

この問題は以下の3つのいずれかによって発生します。
- 処理のタイムアウト値の30秒に達して終了してしまう。
- メモリの使用量の上限値に達して終了してしまう。
- ファイルサイズの上限値に達して終了してしまう。
大容量のCSVがインポートすると「504 Gateway Timeout」で失敗してしまう問題の対策を以下の環境で解説します。
※「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。
名称 |
Ver |
---|---|
OS |
CentOS8.6 or Linux8.6 or RHEL8.6 |
PHP |
7.2.24-1.module_el8.3.0+2010+7c76a223 |
PHP-FPM |
7.2.24-1.module_el8.3.0+2010+7c76a223 |
phpMyAdmin |
5.2.0-1.el8.remi |
nginx |
1:1.14.1-9.module_el8.3.0+2165+af250afe |
MySQL |
8.0.30 |
- 【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」
- 「/etc/php.ini」の設定変更
- 「/etc/nginx/conf.d/phpmyadmin.conf」の設定変更
「/etc/php.ini」の設定変更
以下の3つの問題の上限値を増やします。
- 処理のタイムアウト値の30秒に達して終了してしまう。
- メモリの使用量の上限値に達して終了してしまう。
- ファイルサイズの上限値に達して終了してしまう。
自身の環境や用途に応じて数字はさらに増やしてください。
vim /etc/php.ini
■変更前max_execution_time = 30memory_limit = 128Mpost_max_size = 8Mupload_max_filesize = 2M
↓↓↓↓↓↓変更後↓↓↓↓↓↓
■変更後max_execution_time = 1200 ←処理のタイムアウト値を1200秒にします。memory_limit = 1024M ←メモリ上限値を1024MBにします。post_max_size = 1024M ←処理のメモリ上限値を1024MBにします。upload_max_filesize = 1024M ←アップロードファイルの上限値を1024MBにします。
「/etc/nginx/conf.d/phpmyadmin.conf」の設定変更
以下の問題の上限値を増やします。
- 処理のタイムアウト値の30秒に達して終了してしまう。
自身の環境や用途に応じて数字はさらに増やしてください。
vim /etc/nginx/conf.d/phpmyadmin.conf
■変更前
■変更後
14行目に「fastcgi_read_timeout 1200;」を追加しています。
「【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」」の手順は以上となります。
次回はphpMyAdminの活用方法について説明したいと思います。
現在悩んでいる方はTwitterでご連絡ください。
私も辛い日々を経験したのであなたの助けになりたいです。
カユラ(@kayura_SE )