目次
【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」
こんにちは!インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE)です。
本記事では、phpMyAdminで大容量のCSVをインポートする際に発生する「504 Gateway Timeout」エラーの原因と解決方法を解説します。「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。
「phpMyAdmin」で大容量のCSVをインポートすると「504 Gateway Timeout」で失敗する
大容量のCSVをphpMyAdminにインポートした際にしばらくすると「504 Gateway Timeout」と表示されてしまい、中途半端な状態でインポートされてしまいます。

この問題は以下の3つのいずれかによって発生します。
- 処理のタイムアウト値の30秒に達して終了してしまう。
- メモリの使用量の上限値に達して終了してしまう。
- ファイルサイズの上限値に達して終了してしまう。
大容量のCSVインポートが失敗してしまう問題の対策を以下の環境で解説します。
※「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。
| 名称 | バージョン |
|---|---|
| OS | CentOS8.6 / AlmaLinux8.6 / 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 |
「/etc/php.ini」の設定変更
以下の3つの上限値を増やします。自身の環境や用途に応じて数字はさらに増やしてください。
- 処理のタイムアウト値の30秒に達して終了してしまう。
- メモリの使用量の上限値に達して終了してしまう。
- ファイルサイズの上限値に達して終了してしまう。
vim /etc/php.ini
■変更前
max_execution_time = 30
memory_limit = 128M
post_max_size = 8M
upload_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」エラーの対策として、/etc/php.ini のタイムアウト値・メモリ・ファイルサイズの上限引き上げと、nginx の fastcgi_read_timeout 設定変更の手順を解説しました。同様の問題で困っている方はTwitterでご連絡ください。
カユラ(@kayura_SE)

コメント