MENU

【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」

目次

【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」

こんにちは!インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE)です。

本記事では、phpMyAdminで大容量のCSVをインポートする際に発生する「504 Gateway Timeout」エラーの原因と解決方法を解説します。「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。

「phpMyAdmin」で大容量のCSVをインポートすると「504 Gateway Timeout」で失敗する

大容量のCSVをphpMyAdminにインポートした際にしばらくすると「504 Gateway Timeout」と表示されてしまい、中途半端な状態でインポートされてしまいます。

phpMyAdminの504 Gateway Timeout
phpMyAdminの504 Gateway Timeout

この問題は以下の3つのいずれかによって発生します。

  • 処理のタイムアウト値の30秒に達して終了してしまう。
  • メモリの使用量の上限値に達して終了してしまう。
  • ファイルサイズの上限値に達して終了してしまう。

大容量のCSVインポートが失敗してしまう問題の対策を以下の環境で解説します。

※「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。

名称バージョン
OSCentOS8.6 / AlmaLinux8.6 / RHEL8.6
PHP7.2.24-1.module_el8.3.0+2010+7c76a223
PHP-FPM7.2.24-1.module_el8.3.0+2010+7c76a223
phpMyAdmin5.2.0-1.el8.remi
nginx1:1.14.1-9.module_el8.3.0+2165+af250afe
MySQL8.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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次