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 即可使用,支援多語言、主題、雙因子認證。
# 官網下載最新穩定版 (目前 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
config.inc.php複製範本:
cp config.sample.inc.php config.inc.php
關鍵配置項:
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;
}
支援書籤、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';
allow/deny 或 Cloudflare WAF$cfg['TwoFactorAuth'] = true; 需安裝 php-gmp php-bcmathRENAME USER 'root'@'%' TO 'root'@'localhost';/phpmyadminCVE-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'; |