宝塔面板实战:管理多个 WordPress 站点的 10 个技巧
宝塔(BT-Panel)是国内最流行的服务器管理面板。如果你像我一样一个人管理 5+ 个站点,又不想学一堆 Linux 命令,这篇教程会帮你把日常运维效率拉满。
安装
# CentOS
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
Ubuntu/Debian
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
安装完会输出面板地址(一般是 http://your-ip:888),账号密码。
⚠️ 安全提示:第一件事改面板端口(8888 → 其它)+ 改默认账号密码 + 开启面板 SSL + 限制 IP 访问。
10 个实战技巧
1. 多 PHP 版本共存
同一台服务器可以同时跑 PHP 5.6 / 7.4 / 8.2,互不干扰。每个站点选不同 PHP 版本。
适用场景:
- 老项目(ThinkPHP 5.0 / WordPress 4.x)必须 PHP 5.6
- 新项目用 PHP 8.2
切换方式:站点设置 → PHP 版本。
2. 一键备份 + 远程同步
宝塔自带「计划任务」可以每天自动备份数据库和网站文件到 OSS / S3 / 远程服务器。
设置:计划任务 → 添加任务 → 备份数据库/网站 → 选择存储位置。
我的备份策略:
- 数据库:每天凌晨 3 点,保留 7 天
- 网站文件:每周日 4 点,保留 4 周
- 远程同步:备份完自动 rsync 到 NAS
3. nginx vhost 直接编辑(绕过自动覆盖)
宝塔会自动管理 vhost,但有时候要手动改(比如我们的 Sage 11 加 location ^~ /app/themes/sage/public/build/)。
坑:在面板里改 nginx 配置 → 保存 → BT 会自动重新生成 vhost → 你的手动修改没了。
解法:直接 SSH 编辑 /www/server/panel/vhost/nginx/your-site.conf,BT 不会动。但要确保面板里不要点保存。
我用这个方法管理所有「特殊」站点。
4. 数据库跳过权限重置 root 密码
忘 root 密码?SSH:
# 停止 mysqld
/etc/init.d/mysqld stop
跳过权限启动(后台)
mysqld_safe --skip-grant-tables &
进入 MySQL(不需要密码)
mysql -uroot
重置密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';
EXIT
重启 mysqld
/etc/init.d/mysqld restart
坑 1:mysqld_safe 启动会写 ib_logfile 文件,必须 chown mysql:mysql /www/server/data/ib_logfile*,不然启动失败。
坑 2:BT 面板的 mysqld datadir 不在 /var/lib/mysql,而是在 /www/server/data。
5. 编译 PHP 扩展
宝塔的 PHP 是源码编译版,扩展也是单独编译的。比如装 fileinfo:
cd /www/server/php/82/ext/fileinfo
/www/server/php/82/bin/phpize
./configure --with-php-config=/www/server/php/82/bin/php-config
make && make install
echo "extension=fileinfo.so" >> /www/server/php/82/etc/php.ini
/etc/init.d/php-fpm-82 reload
6. 反向代理内网服务
如果你有一台内网服务(比如 NAS 上的 API),可以用宝塔 nginx 做反向代理对外暴露:
location /api/ {
proxy_pass http://192.168.1.100:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
7. Let’s Encrypt 一键 SSL
宝塔站点设置 → SSL → Let’s Encrypt → 申请。
DV 证书免费、自动续期,足够个人/小团队用。
商业项目需要 OV/EV 证书的话,自己上传:
# 把 .crt + .key 文件传到 /www/server/panel/vhost/cert/yourdomain.com/
然后面板里选「其他证书」粘贴。
8. 监控 + 告警
宝塔的「监控」功能可以设置:
- CPU / 内存 / 磁盘 / 带宽 阈值告警
- 网站可用性监控(HTTP 200 才算正常)
- 进程监控(mysqld / nginx / php-fpm 挂了自动拉起)
我设的几个关键告警:
- 磁盘 > 80% → 邮件 + 钉钉
- 5xx 错误 > 10 次/分钟 → 邮件
- CPU 持续 > 90% 超过 5 分钟 → 钉钉
9. 防火墙白名单
宝塔自带「安全」面板,里面有简单的 iptables 规则。但我更推荐直接编辑 /etc/firewalld/ 或用 ufw:
# 只允许 SSH + HTTP + HTTPS
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH(改端口后用新端口)
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
如果 BT 面板要远程访问,单独开放一个 IP:
ufw allow from YOUR_OFFICE_IP to any port 8888
10. wp-cli 在 BT 环境
宝塔默认装了 wp-cli(位置 /usr/local/bin/wp)。但 BT 的 WordPress 站点路径通常在 /www/wwwroot/yourdomain.com/,跑 wp 前要 cd 进去:
cd /www/wwwroot/yourdomain.com/
wp post list
或者指定路径
wp post list --path=/www/wwwroot/yourdomain.com/
日常维护清单
| 周期 | 任务 |
|—|—|
| 每天 | 检查 BT 告警 |
| 每周 | 检查磁盘、备份完整性 |
| 每月 | BT 面板 + nginx + php + mysqld 升级 |
| 每季度 | 清理 6 个月前的访问/错误日志 |
| 每年 | SSL 证书审计、密码轮换、安全加固 |
BT 替代方案
如果你不想用 BT(有些场景下确实不好用,比如 K8s/Docker 环境):
- aaPanel(BT 国际版):界面一样,免费
- 1Panel:新一代,新设计
- 手动 LNMP:彻底掌控,但要花时间学
总结
宝塔不是完美的(它的「自动覆盖」特性有时很烦),但对个人站长和小团队来说,是性价比最高的选择。
关键是:把 BT 当作「配置生成器」,重要服务(nginx / mysqld)直接 SSH 管。两者结合才能发挥最大威力。
下一篇会讲 nginx + Let’s Encrypt + 自动续期的完整配置。