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

Nginx + PHP-FPM 環境下安裝配置 phpMyAdmin 完整教程

     編輯:PHP 綜合知識

在 Nginx + PHP-FPM 架構下部署 phpMyAdmin,需正確配置 Nginx 虛擬主機、PHP Session 路徑、phpMyAdmin 配置文件及性能優化。本文提供生產級部署步驟。

前置條件

  • Nginx + PHP-FPM 已正常運行
  • MySQL/MariaDB 已設置 root 密碼 (禁用空密碼登錄)
  • PHP 已啟用 mysqli、mbstring、session 擴展

一、PHP Session 目錄配置 (關鍵)

phpMyAdmin 依賴 Session,默認存儲路徑需可寫且權限正確。

# 1. 檢查 php.ini
grep session.save_path /etc/php.ini
# 應為: session.save_path = "/var/lib/php/session"

# 2. 目錄存在性與權限
ls -ld /var/lib/php/session
# 不存在則創建
mkdir -p /var/lib/php/session
chown nginx:nginx /var/lib/php/session -R
chmod 700 /var/lib/php/session

# 3. 重載 PHP-FPM
systemctl reload php-fpm

二、下載並部署 phpMyAdmin

# 官網下載 all-languages 版 (含中文)
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
unzip phpMyAdmin-5.2.1-all-languages.zip
mv phpMyAdmin-5.2.1-all-languages /www/phpmyadmin

# 複製配置模板
cd /www/phpmyadmin
cp config.sample.inc.php config.inc.php

三、配置 config.inc.php



四、Nginx 虛擬主機配置

# 創建 /etc/nginx/conf.d/phpmyadmin.conf
server {
    listen 8081; # 或 443 ssl
    server_name pma.yourdomain.com; # 建議獨立域名
    root /www/phpmyadmin;
    index index.php index.html;

    access_log /var/log/nginx/phpmyadmin_access.log main;
    error_log  /var/log/nginx/phpmyadmin_error.log;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # 或 127.0.0.1:9000
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param HTTPS on; # 若用 SSL
    }

    location ~ /\.ht {
        deny all;
    }

    # 靜態資源緩存
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    # 安全:隱藏版本號、限制訪問 IP (可選)
    # allow 192.168.1.0/24; deny all;
}

五、重載 Nginx 並驗證

nginx -t && systemctl reload nginx
# 訪問 https://your-server:8081/ 或 https://pma.yourdomain.com/

六、解決 phpMyAdmin 4.x+ 加載極慢問題

原因: 版本檢查機制嘗試連接 www.phpmyadmin.net 獲取 version.json,國內訪問極慢或超時,導致頁面阻塞。

解決: 禁用版本檢查。

# 編輯 libraries/classes/VersionCheck.php (或較舊版本的 version_check.php)
# 找到 checkVersion() 方法,直接返回 false 或註釋網絡請求代碼

# 簡單暴力修改 (以 4.1 為例):
sed -i "s/if (isset(\$_SESSION\['cache'\]\['version_check'\]))/if (false \&\& isset(\$_SESSION['cache']['version_check']))/" libraries/version_check.php
# 或直接註釋 else 分支中的 file_get_contents/curl 請求

修改後 phpMyAdmin 秒開,不再卡頓。

七、安全加固建議

  • 修改訪問路徑:目錄重命名為難以猜測名稱 (如 pma_x7k9/)。
  • IP 白名單:Nginx allow/deny 或 PHP 入口判斷 $_SERVER['REMOTE_ADDR']。
  • HTTPS 強制:配置 SSL 證書,Nginx 強制跳轉 HTTPS。
  • 雙因子認證 (2FA):phpMyAdmin 內建支持 Google Authenticator。
  • 定期更新:關注安全公告,及時升級。

總結

核心步驟:Session 目錄權限 → phpMyAdmin 解壓配置 blowfish_secret → Nginx fastcgi_pass 指向 PHP-FPM → 禁用版本檢查 → 安全加固。按此流程部署,穩定、快速、安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved