在 phpMyAdmin 中遇到 504 网关超时错误时该怎么办

尝试从 phpMyAdmin 导入 SQL 时,可能会遇到 504 超时错误。
本文将介绍如何解决此问题,以便您可以从 phpMyAdmin 导入 SQL。
解决方案 1. 文件大小问题
/etc/php.ini中的以下三项
- 最大上传文件大小:
upload_max_filesize = 512M - POST 请求允许的最大数据大小为
post_max_size = 512M - 脚本可分配的最大内存:
memory_limit = 512M
请注意,以上数值之间存在以下关系:
upload_max_filesize ≦ post_max_size ≦ memory_limit
请注意,php.ini 设置的实际反映方式会因 Web 中间件的不同而有所差异!
- Apache:重启以反映
- nginx:重新加载 php-fpm 设置以反映更改
$ /etc/init.d/php-fpm 重新加载
如何检查它是否已反映出来
如果在 phpMyAdmin 中选择要导入的文件时显示以下内容,则表示操作正确!
(最大:512MiB)

方案二:时间
这是延长超时时间的一种变通方法。
php.ini 文件中有一个名为 max_execution_time 的项。请修改此值。
`max_execution_time` 设置解析器 (*) 终止脚本执行的时间。
此设置旨在防止冗长的脚本给服务器造成负担。
单位为秒,设置为 0 表示没有时间限制。
(*解析器:一种分析脚本语法并将其转换为程序可处理的数据结构集合的程序。)参考:
http
http://e-words.jp/w/%E3%83%91%E3%83%BC%E3%82%B5.html
配置示例
*建议除了 max_execution_time 之外,还设置其他参数。
- php.ini
max_execution_time = 300 - php-fpm.conf
request_terminate_timeout 300 - nginx.conf
fastcgi_read_timeout 300
`request_terminate_timeout` 设置处理单个请求的超时时间,超时后工作进程将被终止。如果 `max_execution_time` ini 选项由于某种原因无法停止脚本执行,则使用此选项。值“0”表示“关闭”。可用单位:s(秒)(默认值)、m(分钟)、h(小时)或 d(天)。默认值:0
参考:
http://php.net/manual/ja/install.fpm.configuration.php#request-terminate-timeoutfastcgi_read_timeout 设置 FastCGI 响应读取超时时间。它决定了向 nginx 发送请求后等待响应的时间。默认值为 60 秒。
参考:
http
反思设置
如果您使用的是 Apache,请重启 Apache 以使更改生效。
$ service httpd 重启
对于 nginx 来说,这些设置会通过使用 reload 配置命令来生效。
$ service php-fpm reload $ service nginx reload
顺便一提
如果在进行此设置后出现以下错误,请检查您的 phpMyAdmin 设置。
执行时间已超过 300 秒的最大限制…….
更改 phpMyAdmin 配置文件(/path/to/phpmyadmin/libraries/config.default.php)中的以下值。
/** * 最大执行时间(秒)(0 表示无限制) * * @global integer $cfg['ExecTimeLimit'] */ $cfg['ExecTimeLimit'] = 300;
单位为秒,0 表示无限期。
此外,max_execution_time 仅包含 PHP 脚本的处理时间,不包含访问数据库时等待响应的时间。
如果超时是由于网络速度问题导致的,请增加 mysql.connect_timeout 的值。
mysql.connect_timeout 连接
超时时间(单位:秒)。在 Linux 系统中,此超时时间也用作等待服务器首次响应的时间。
额外的
这可以通过改变数据更改方式而不改变设置来实现。
数据删除过程似乎很耗费资源,因此,
如果要删除大量数据,似乎先用 truncate 删除所有内容,然后再重新插入所需的数据会更快。
2