文章目錄
最新 赫斯提亞CP 安裝Adminer 全攻略,包含一鍵部署、安全加強、自動化配置完整實操步驟,手把手教你完成資料庫管理工具部署與伺服器安全防護,0基礎也能快速上手,解決HestiaCP+Adminer 運維痛點。
如果你還在裸奔使用資料庫管理工具,那就是在給駭客遞鑰匙。
為什麼選擇Adminer 而不是 phpMyAdmin的?
Adminer 只有一個不到1MB 的PHP 文件,部署極簡,速度快,資源佔用低。
相較於phpMyAdmin 的複雜結構,Adminer 更適合VPS、小型網站和個人專案。

在HestiaCP 安裝Adminer 的步驟
1. 下載Adminer 文件
前往 Adminer 官方網站 下載最新版本的 adminer.php。
將檔案上傳到HestiaCP 的網站目錄,例如:
/home/username/web/adminer.domain.com/public_html/adminer.php
2. 建立子網域並啟用SSL
在HestiaCP 面板中新增子域名 adminer.domain.com,啟用Let's Encrypt SSL,確保傳輸安全。
3. 設定Nginx 密碼保護
在子網域的Nginx 設定檔中加入:
location / {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
root /home/username/web/adminer.domain.com/public_html;
index index.php adminer.php;
}
產生密碼檔:
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd adminuser
這樣存取Adminer 時會彈出密碼框,只有輸入正確的使用者名稱和密碼才能進入。
自動更新Adminer 文件
為了避免使用舊版帶來的安全風險,可以用Shell 腳本+ Cron 定時任務實現自動更新。
更新腳本範例
#!/bin/bash
URL="https://www.adminer.org/latest.php"
TARGET="/home/username/web/adminer.domain.com/public_html/adminer.php"
wget -q -O "$TARGET" "$URL"
chown username:username "$TARGET"
chmod 644 "$TARGET"
儲存為 /usr/local/bin/update-adminer.sh,並新增定時任務:
crontab -e
0 3 * * 1 /usr/local/bin/update-adminer.sh
這樣每週一凌晨3 點會自動更新Adminer 檔。
Fail2Ban 防暴力破解
單純的Basic Auth 容易被暴力破解,Fail2Ban 可以自動封鎖惡意IP。
過濾器配置
文件:/etc/fail2ban/filter.d/nginx-adminer.conf
[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =
Jail 配置(遞增封鎖時間)
文件:/etc/fail2ban/jail.local
[nginx-adminer]
enabled = true
filter = nginx-adminer
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 3
findtime = 600
bantime.increment = true
bantime.rndtime = 60
bantime.factor = 2
bantime = 600
效果:第一次封鎖10 分鐘,第二次20 分鐘,第三次40 分鐘,依序遞增,持續攻擊者會被越來越長時間封鎖。
完整一鍵部署腳本
儲存為 /usr/local/bin/setup-fail2ban-adminer.sh:
#!/bin/bash
FILTER_PATH="/etc/fail2ban/filter.d/nginx-adminer.conf"
JAIL_PATH="/etc/fail2ban/jail.local"
cat > $FILTER_PATH << 'EOF'
[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =
EOF
cat >> $JAIL_PATH << 'EOF'
[nginx-adminer]
enabled = true
filter = nginx-adminer
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 3
findtime = 600
bantime.increment = true
bantime.rndtime = 60
bantime.factor = 2
bantime = 600
EOF
systemctl restart fail2ban
fail2ban-client status nginx-adminer
執行:
sudo chmod +x /usr/local/bin/setup-fail2ban-adminer.sh
sudo /usr/local/bin/setup-fail2ban-adminer.sh
結論:安全與效率的平衡
我始終認為,資料庫管理工具不是隨便放在公網就能安心使用的東西。 Adminer 的輕量化讓人喜歡,但安全防護必須跟上。密碼保護是第一道門檻,自動更新是持續防禦,Fail2Ban 是智慧反擊。三者結合,才能讓你的資料庫管理環境既有效率又安全。
真正的高手,不是只會搭建工具,而是懂得守護工具。
希望陳溈亮博客( https://www.chenweiliang.com/ ) 分享的《HestiaCP 安裝Adminer:安全自動化設定+ 資料庫管理最佳化》,對您有幫助。
