首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

phpMyAdmin 響應慢與登錄超時完整解決方案

     編輯:PHP 相關知識

問題一:間歇性響應極慢、FastCGI 超時

根因分析

查看 PHP-FPM 慢日誌發現:

[10-May-2013 11:15:16] [pool www] pid 10992
script_filename = /usr/share/nginx/html/phpmyadmin/version_check.php
[0x0000000002902e78] file_get_contents() /usr/share/nginx/html/phpmyadmin/version_check.php:240

version_check.php 會定期向官網 https://www.phpmyadmin.net/version_check.php 發起請求檢查更新。國內服務器訪問該域名極慢或超時,導致整個 phpMyAdmin 響應卡死。

解決方案:禁用版本檢查

  1. 編輯 phpMyAdmin/version_check.php
  2. 在 <?php 之後立即添加 exit;
<?php
exit; // 禁用版本檢查
// 原有代碼...
?>

或修改 config.inc.php 設置:

$cfg['VersionCheck'] = false;

保存後響應速度即時恢復正常。

問題二:登錄超時時間過短 (默認 1440 秒 = 24 分鐘)

現象

開發過程中寫幾行代碼切回瀏覽器,phpMyAdmin 已自動登出,需重複登錄,嚴重影響效率。

解決方案:延長 Cookie 有效期

  1. 編輯 phpMyAdmin/libraries/config.default.php
  2. 搜索 LoginCookieValidity
  3. 將默認值 1440 改為更大值 (秒為單位),例如一週:604800
$cfg['LoginCookieValidity'] = 604800; // 7 天
  1. 同步修改 config.inc.php (若存在) 確保生效
$cfg['LoginCookieValidity'] = 604800;

進階優化建議

  • 使用本地鏡像源:若需保留版本檢查,可搭建內網鏡像或修改 version_check.php 指向內網地址。
  • 調整 PHP-FPM 超時:request_terminate_timeout = 60s 避免單一腳本長時間佔用進程。
  • 啟用持久連接:$cfg['PersistentConnections'] = true; 減少 MySQL 握手開銷。
  • 配置吹牛模式:$cfg['ShowSQL'] = true; 方便調試但生產環境建議關閉。

安全提醒

延長登錄超時降低了安全性,生產環境請:

  1. 強制 HTTPS 訪問 phpMyAdmin
  2. 配置 Nginx 基礎認證 (auth_basic) 雙重防護
  3. 限制訪問 IP 白名單
  4. 定期修改 MySQL root 密碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved