2023年如何通过宝塔面板部署wordpress并部署waf
字数 1974 2025-08-10 19:49:08
通过宝塔面板部署WordPress并配置WAF防火墙详细教程
一、技术选型与准备工作
1.1 技术选型理由
-
宝塔面板:
- 提供可视化操作界面,降低运维难度
- 内置大量开源网站模板
- 支持快速部署常见Web应用
-
雷池社区版WAF:
- 商业产品的开源版本,效果有保证
- 有活跃的社区讨论群和官方技术支持
- 提供完善的中文文档支持
1.2 环境准备
- 服务器配置建议:2核CPU、4GB内存、100M带宽
- 操作系统:支持CentOS、Ubuntu等主流Linux发行版
- 域名准备(可选):如无域名可直接使用服务器IP访问
二、宝塔面板安装与配置
2.1 安装宝塔面板
-
执行官方安装命令(根据系统选择对应命令):
# CentOS yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec # Ubuntu/Debian wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec -
安装完成后记录面板地址、用户名和密码
2.2 LNMP环境安装
- 登录宝塔面板后,进入"软件商店"
- 选择"LNMP"环境(Nginx+MySQL+PHP)
- 选择"极速安装"方式(注意:安装可能需要30分钟以上)
三、WordPress部署
3.1 创建网站
- 进入"网站" → "添加站点"
- 填写域名(如无域名可使用服务器IP)
- 重要:将端口改为非80/443端口(如8088),为WAF预留标准端口
- 在"PHP版本"中选择兼容的PHP版本(WordPress推荐7.4+)
3.2 一键部署WordPress
- 在"网站"列表中找到新建的站点,点击"一键部署"
- 选择WordPress进行部署
- 记录自动生成的数据库用户名和密码
3.3 WordPress初始化配置
- 访问站点(如
http://example.com:8088或http://服务器IP:8088) - 选择语言(简体中文)
- 填写数据库信息(使用宝塔自动创建的数据库账号)
- 设置WordPress管理员账号和密码
四、雷池WAF部署与配置
4.1 安装雷池社区版
执行以下命令进行安装:
/bin/bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
4.2 访问WAF管理界面
- 访问
https://服务器IP:9443 - 使用TOTP认证软件(如Google Authenticator)完成绑定
- 设置管理员账号和密码
4.3 配置防护站点
- 进入"防护站点" → "添加站点"
- HTTP配置:
- 监听端口:80
- 转发配置:指向本地WordPress端口(如8088)
- HTTPS配置(如需):
- 监听端口:443
- 上传SSL证书
- 转发配置:指向本地WordPress端口(如8088)
4.4 WordPress站点地址修正
- 登录WordPress后台
- 进入"设置" → "常规"
- 修改以下两项为WAF监听的地址:
- WordPress地址(URL):
https://example.com - 站点地址(URL):
https://example.com
- WordPress地址(URL):
- 保存更改
五、功能验证与测试
5.1 正常访问测试
- 访问
https://example.com(通过WAF) - 确认能正常显示WordPress首页
- 确认后台登录功能正常
5.2 WAF防护测试
尝试访问以下URL测试WAF是否生效:
https://example.com/id=1or 1=1
预期结果:应返回403禁止访问状态码,证明WAF已成功拦截SQL注入攻击
六、常见问题解决
6.1 端口冲突问题
- 现象:WAF无法绑定80/443端口
- 解决方案:
- 确保宝塔中的网站不使用80/443端口
- 检查是否有其他服务占用这些端口(如Apache)
- 使用
netstat -tulnp命令查看端口占用情况
6.2 WordPress重定向问题
- 现象:访问HTTPS站点被重定向到8088端口
- 解决方案:
- 确保WordPress后台的站点地址设置为WAF地址(不带端口)
- 在wp-config.php中添加:
define('WP_HOME','https://example.com'); define('WP_SITEURL','https://example.com'); - 清除WordPress和浏览器缓存
6.3 混合内容警告
- 现象:HTTPS页面加载HTTP资源
- 解决方案:
- 安装"Really Simple SSL"插件
- 或在wp-config.php中添加:
$_SERVER['HTTPS'] = 'on';
七、安全加固建议
-
定期更新:
- 保持WordPress、主题和插件最新版本
- 定期更新雷池WAF规则库
-
访问限制:
- 限制WordPress后台登录IP(可通过雷池WAF实现)
- 禁用XML-RPC功能(如不需要)
-
备份策略:
- 设置宝塔定期自动备份网站和数据库
- 将备份文件存储到远程位置
-
监控设置:
- 在雷池WAF中设置告警通知
- 监控异常访问模式
八、总结
本教程详细介绍了通过宝塔面板快速部署WordPress并结合雷池社区版WAF实现安全防护的全过程。关键点包括:
- 通过宝塔简化LNMP环境和WordPress部署
- 使用非标准端口部署WordPress为WAF预留空间
- 雷池WAF的安装和反向代理配置
- WordPress站点地址的修正方法
- WAF防护效果的验证方法
此方案特别适合个人博客或小型网站,在保证易用性的同时提供了企业级的安全防护能力。