よくばりすなシステムエンジニアのブログ

サーバー・ネットワークエンジニア向けに発信しますっ!

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

はじめに

こんにちは!

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

今回は、「【phpMyAdmin】大容量のCSVがインポートできない問題の対策「504 Gateway Timeout」」について紹介したいと思います。

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

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

phpMyAdminの504 Gateway Timeout
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





「/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」」の手順は以上となります。

次回はphpMyAdminの活用方法について説明したいと思います。

現在悩んでいる方はTwitterでご連絡ください。

私も辛い日々を経験したのであなたの助けになりたいです。

カユラ(@kayura_SE )