Maqolalar katalogi
So'nggi HestiaCP 安装 Adminer 全攻略,包含一键部署、安全加固、自动化配置完整实操步骤,手把手教你完成数据库管理工具部署与服务器安全防护,0基础也能快速上手,解决 HestiaCP+Adminer 运维痛点。
如果你还在裸奔使用数据库管理工具,那就是在给黑客递钥匙。
为什么选择 Adminer 而不是 phpMyAdmin?
Adminer 只有一个不到 1MB 的 PHP 文件,部署极简,速度快,资源占用低。
相比 phpMyAdmin 的复杂结构,Adminer 更适合 VPS、小型站点和个人项目。

在 HestiaCP 安装 Adminer 的步骤
1. 下载 Adminer 文件
Ga boring 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。
过滤器配置
hujjat:/etc/fail2ban/filter.d/nginx-adminer.conf
[Definition]
failregex = ^<HOST> - .* "GET /adminer.php HTTP/.*" 401
ignoreregex =
Jail 配置(递增封禁时间)
hujjat:/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
amalga oshirish:
sudo chmod +x /usr/local/bin/setup-fail2ban-adminer.sh
sudo /usr/local/bin/setup-fail2ban-adminer.sh
结语:安全与效率的平衡
我始终认为,数据库管理工具不是随便放在公网就能安心使用的东西。Adminer 的轻量化让人喜欢,但安全防护必须跟上。密码保护是第一道门槛,自动更新是持续防御,Fail2Ban 是智能反击。三者结合,才能让你的数据库管理环境既高效又安全。
真正的高手,不是只会搭建工具,而是懂得如何守护工具。
Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ ) 分享的《HestiaCP 安装 Adminer:安全自动化设置 + 数据库管理优化》,对您有帮助。
Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-34018.html
