phpMyAdmin 是最流行的 MySQL/MariaDB Web 管理工具。本文記錄標準安裝流程、空密碼登錄報錯解決、安全加固配置與常見問題排查。
# 1. 下載最新版(或指定版本) cd /tmp wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz # 2. 解壓到 Web 根目錄 sudo tar xzf phpMyAdmin-latest-all-languages.tar.gz -C /var/www/html/ sudo mv /var/www/html/phpMyAdmin-*-all-languages /var/www/html/phpmyadmin # 3. 設置權限 sudo chown -R www-data:www-data /var/www/html/phpmyadmin sudo chmod -R 755 /var/www/html/phpmyadmin # 4. 訪問測試 # https://your-domain/phpmyadmin/
sudo apt update && sudo apt install phpmyadmin # 安裝過程會提示: # - Web 服務器選擇:apache2 / lighttpd # - 數據庫配置:dbconfig-common (Yes) # - MySQL root 密碼、phpmyadmin 專用用戶密碼 # 包含 Apache 配置自動啟用:/etc/apache2/conf-enabled/phpmyadmin.conf # 訪問:https://your-domain/phpmyadmin/
composer create-project phpmyadmin/phpmyadmin --no-dev # 適合嵌入專案或獨立部署,需手動配置 Web 服務器指向 vendor/phpmyadmin/phpmyadmin
錯誤提示:空密碼登錄被禁止 (參見 允許空密碼)
phpMyAdmin 預設配置 $cfg['Servers'][$i]['AllowNoPassword'] = false; 禁止空密碼登錄,防止無密碼 root 賬號被訪問。
# 1. 複製配置模板 cd /var/www/html/phpmyadmin cp config.sample.inc.php config.inc.php # 2. 編輯配置文件 # 找到並修改: $cfg['Servers'][$i]['AllowNoPassword'] = true; # 完整示例片段: $i = 0; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; # 空密碼 $cfg['Servers'][$i]['AllowNoPassword'] = true; # 關鍵:允許空密碼 $cfg['Servers'][$i]['auth_type'] = 'cookie'; # 推薦 cookie 認證
| 配置項 | 推薦值 | 說明 |
|---|---|---|
| blowfish_secret | 32字符隨機串 | Cookie 加密密鑰,必須設置且保密 |
| ForceSSL | true | 強制 HTTPS 訪問 |
| LoginCookieValidity | 1440 (24小時) | 登錄 Cookie 有效期 |
| LoginCookieStore | 0 | 關閉「記住我」,瀏覽器關閉即失效 |
| MaxRows | 50 | 默認顯示行數,防大表卡死 |
| ExecTimeLimit | 300 | 腳本執行超時,防長查詢阻塞 |
| AllowArbitraryServer | false | 禁止任意服務器連接 |
| CaptchaLoginPublicKey/PrivateKey | 配置 reCAPTCHA | 登錄驗證碼防暴力破解 |
常見問題排查
| 問題 | 原因 | 解決 |
|---|---|---|
| 404 Not Found | Apache 未加載 phpmyadmin 配置 | sudo a2enconf phpmyadmin && systemctl reload apache2 |
| 「mysqli 擴展未安裝」 | PHP 缺少 mysqli/pdo_mysql | sudo apt install php-mysqli php-pdo-mysql && systemctl restart php-fpm |
| 權限不足無法創建表 | 用戶缺少 CREATE/ALTER 權限 | GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'pass'; FLUSH PRIVILEGES; |
| 導出大文件失敗 | PHP memory_limit/upload_max_filesize 過小 | 調整 php.ini:memory_limit=256M, upload_max_filesize=100M, post_max_size=100M |
| Session 錯誤 | session.save_path 不可寫 | chown www-data:www-data /var/lib/php/sessions |
phpMyAdmin 歷史漏洞頻出,生產環境建議:
ssh -L 8080:localhost:80 user@servermysql -u root -p、mysqldump、pt-toolkitphpMyAdmin 適合開發測試環境快速操作數據庫。生產環境務必嚴格限制訪問來源、強制 HTTPS、設置強密碼、定期更新版本。空密碼登錄僅用於受控內網開發環境,絕不可用於生產。