phpMyAdmin 错误 504 网关超时重新加载
Posted
技术标签:
【中文标题】phpMyAdmin 错误 504 网关超时重新加载【英文标题】:phpMyAdmin Error 504 Gateway Timeout Reloaded 【发布时间】:2014-12-03 21:30:49 【问题描述】:我的 phpmyadmin 有一个非常烦人的问题。它突然出现了。据我所知,我的专用服务器没有发生任何变化。
当我尝试在浏览器中执行任何查询或显示执行时间超过 1 秒的视图时(Windows 7 上的 firefox,即行为相同),我收到以下错误:
Error in Processing Request
Error code: 504
Error text: Gateway Timeout
查询可以或不需要有count(*)。他们在 5m - 50m 行的表格上工作。
当我点击 phpmyadmin 中的任何链接时,有时会出现相同的错误,例如“浏览”、“服务器”或“结构”。
在同一台专用服务器上运行更密集的查询的 php 脚本可以完美运行。
以下是一些技术细节:
Database server
•Server: Localhost via UNIX socket
•Server type: mysql
•Server version: 5.5.38-0ubuntu0.14.04.1-log - (Ubuntu)
•Protocol version: 10
•User: XXX@localhost
• Server charset: UTF-8 Unicode (utf8)
Web server
•Apache/2.4.7 (Ubuntu)
•Database client version: libmysql - 5.5.38
•PHP extension: mysqli Documentation
phpMyAdmin
•Version information: 4.2.3deb1.trusty~ppa.1
我在网上找到了一些线索,并尝试在我的 conf.inc.php 文件中添加最后两行(见下文),但没有任何变化,重启服务器后也是如此:
<?php
/**
* Debian local configuration file
*
* This file overrides the settings made by phpMyAdmin interactive setup
* utility.
*
* For example configuration see
* /usr/share/doc/phpmyadmin/examples/config.sample.inc.php
* or
* /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php
*
* NOTE: do not add security sensitive data to this file (like passwords)
* unless you really know what you're doing. If you do, any user that can
* run PHP or CGI on your webserver will be able to read them. If you still
* want to do this, make sure to properly secure the access to this file
* (also on the filesystem level).
*/
// Load secret generated on postinst
include('/var/lib/phpmyadmin/blowfish_secret.inc.php');
// Load autoconf local config
include('/var/lib/phpmyadmin/config.inc.php');
/**
* Server(s) configuration
*/
$i = 0;
// The $cfg['Servers'] array starts with $cfg['Servers'][1]. Do not use $cfg['Servers'][0].
// You can disable a server config entry by setting host to ''.
$i++;
/**
* Read configuration from dbconfig-common
* You can regenerate it using: dpkg-reconfigure -plow phpmyadmin
*/
if (is_readable('/etc/phpmyadmin/config-db.php'))
require('/etc/phpmyadmin/config-db.php');
else
error_log('phpmyadmin: Failed to load /etc/phpmyadmin/config-db.php.'
. ' Check group www-data has read access.');
/* Configure according to dbconfig-common if enabled */
if (!empty($dbname))
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['host'] = $dbserver;
if (!empty($dbport) || $dbserver != 'localhost')
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['port'] = $dbport;
//$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysqli';
/* Optional: User for advanced features */
$cfg['Servers'][$i]['controluser'] = $dbuser;
$cfg['Servers'][$i]['controlpass'] = $dbpass;
/* Optional: Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = $dbname;
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
/* Uncomment the following to enable logging in to passwordless accounts,
* after taking note of the associated security risks. */
// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
/* Advance to next server for rest of config */
$i++;
/* Authentication type */
//$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
//$cfg['Servers'][$i]['host'] = 'localhost';
//$cfg['Servers'][$i]['connect_type'] = 'tcp';
//$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
//$cfg['Servers'][$i]['extension'] = 'mysql';
/* Optional: User for advanced features */
//$cfg['Servers'][$i]['controluser'] = 'pma';
//$cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Optional: Advanced phpMyAdmin features */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma_relation';
// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
// $cfg['Servers'][$i]['history'] = 'pma_history';
// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
/* Uncomment the following to enable logging in to passwordless accounts,
* after taking note of the associated security risks. */
// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
/*
* End of servers configuration
*/
/*
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
//$cfg['AllowArbitraryServer'] = true;
$cfg['LoginCookieValidity'] = 86400;
$cfg['MaxExactCount'] = 0;
$cfg['MaxExactCountViews'] = 0;
请帮帮我。
【问题讨论】:
【参考方案1】:最后,我发现这不是我的服务器上的问题,但我当时的互联网连接提供商只是取消(发送此错误消息)所有需要超过 10 秒才能完成的 https 请求。
【讨论】:
【参考方案2】:如果你在 nginx 中使用 php fcgi,请将其添加到
fastcgi_intercept_errors on;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 900;//in 900 timeout
fastcgi_send_timeout 900; //in 900secend
fastcgi_read_timeout 900; //in 900secend
/etc/nginx/sites-enabled/phpmyadmin.conf 中的示例文件
location ~ ^/phpmyadmin/(.+\.php)$
alias /usr/share/phpmyadmin/$1;
fastcgi_pass unix:/run/php/php7.3-fpm.sock; //check what version php you have in /etc/php/
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
# From fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /usr/share/phpmyadmin; # <-- Changed
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_intercept_errors on;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 900;
fastcgi_send_timeout 900;
fastcgi_read_timeout 900;
【讨论】:
【参考方案3】:我在 http 块中的文件 /etc/nginx/nginx.conf 中添加了以下行:
fastcgi_read_timeout 360;重启nginx
sudo service nginx 重启祝你好运!!!记得喜欢我。非常感谢!
【讨论】:
【参考方案4】:也许你可以在 /etc/nginx/ngix.conf 中检查或增加 nginx 超时设置?检查 proxy_send_timeout 和 proxy_read_timeout。
【讨论】:
以上是关于phpMyAdmin 错误 504 网关超时重新加载的主要内容,如果未能解决你的问题,请参考以下文章
AWS - 错误 504 - 网关超时 - Flask 应用程序
连接 Facebook Graph API 时 ElasticBeanstalk for PHP 上的 504 网关超时