萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

phpMyAdmin 安裝配置全流程指南 (2024 更新版)

快速開始:Docker 一鍵部署 (推薦)

docker run -d \
  --name phpmyadmin \
  --link mysql-db:db \
  -p 8080:80 \
  -e PMA_HOST=db \
  -e PMA_PORT=3306 \
  -e PMA_ABSOLUTE_URI=https://pma.example.com/ \
  phpmyadmin/phpmyadmin:latest

訪問 https://localhost:8080 即可使用,支援多語言、主題、雙因子認證。

傳統部署:原始碼安裝步驟

1. 取得原始碼

# 官網下載最新穩定版 (目前 5.2.x)
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
tar -xzf phpMyAdmin-5.2.1-all-languages.tar.gz
mv phpMyAdmin-5.2.1-all-languages /var/www/html/phpmyadmin

2. 核心配置 config.inc.php

複製範本:

cp config.sample.inc.php config.inc.php

關鍵配置項:

3. Web 伺服器配置 (Nginx 範例)

server {
    listen 80;
    server_name pma.example.com;
    root /var/www/html/phpmyadmin;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_read_timeout 300;
    }

    # 安全:隱藏版本、限制存取 IP
    # allow 192.168.1.0/24; deny all;
}

進階功能啟用

儲存配置資料庫 (pmadb)

支援書籤、SQL 歷史、關係圖、PDF 輸出等:

-- 建立配置庫與使用者
CREATE DATABASE phpmyadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'strong_pass';
GRANT ALL ON phpmyadmin.* TO 'pma'@'localhost';

-- 匯入建表腳本
mysql phpmyadmin < /var/www/html/phpmyadmin/sql/create_tables.sql

-- config.inc.php 啟用
$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]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

安全加固清單

  1. 強制 HTTPS:反向代理終結 TLS,HSTS 標頭
  2. IP 白名單:Nginx allow/deny 或 Cloudflare WAF
  3. 雙因子認證 (2FA):$cfg['TwoFactorAuth'] = true; 需安裝 php-gmp php-bcmath
  4. 禁用 Root 遠程登入:MySQL 層面 RENAME USER 'root'@'%' TO 'root'@'localhost';
  5. 修改預設路徑:避免掃描器直接命中 /phpmyadmin
  6. 定期更新:關注 CVE-2024-xxxxx 類漏洞

常見問題速查

問題解決
「無法載入 mcrypt/openssl 擴展」安裝 php-mcrypt (舊版) / php-openssl php-sodium (新版)
「Token mismatch」頻繁登出檢查 session.save_path 可寫、blowfish_secret 設定、多伺服器負載均衡 Session 共享
大資料庫匯入逾時調整 php.ini upload_max_filesize post_max_size max_execution_time;或用命令列 mysql < dump.sql
中文亂碼資料庫/表/欄位/連線全鏈路 utf8mb4,config.inc.php $cfg['DefaultCharset'] = 'utf8mb4';
copyright © 萬盛學電腦網 all rights reserved