在同一台Linux服务器上部署多个WordPress站点时,需要注意以下关键点:
一、架构规划
-
隔离方式选择
- 虚拟主机(推荐):通过Nginx/Apache虚拟主机配置
- Docker容器:每个WordPress独立容器
- 子目录安装:同一数据库不同前缀
-
域名规划
- 每个站点使用独立域名或子域名
- 配置正确的DNS解析
二、Web服务器配置
# Nginx示例 - 站点1
server {
server_name site1.com www.site1.com;
root /var/www/site1;
index index.php;
location ~ .php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.1-fpm-site1.sock;
}
}
# 站点2使用不同的socket或端口
三、数据库管理
-
数据库分离
- 为每个WordPress创建独立数据库
- 使用不同数据库用户和强密码
-
连接配置
// wp-config.php示例 define('DB_NAME', 'site1_db'); define('DB_USER', 'site1_user'); define('DB_PASSWORD', 'strong_password');
四、PHP-FPM配置
; /etc/php/8.1/fpm/pool.d/site1.conf
[site1]
user = site1_user
group = site1_group
listen = /var/run/php/php8.1-fpm-site1.sock
五、文件系统隔离
-
目录结构
/var/www/ ├── site1/ │ ├── wp-content/ │ └── wp-config.php ├── site2/ │ ├── wp-content/ │ └── wp-config.php └── logs/ ├── site1.access.log └── site2.access.log -
权限设置
# 每个站点使用不同系统用户 sudo useradd -r -s /bin/false site1_user sudo chown -R site1_user:site1_group /var/www/site1
六、安全考虑
-
权限最小化原则
- Web用户只读访问核心文件
- 仅wp-content/uploads目录可写
-
防火墙配置
- 限制不必要的端口访问
- 使用Fail2ban防止暴力破解
七、性能优化
-
资源限制
- 为每个PHP-FPM池设置内存限制
- 配置OPcache共享内存
-
缓存策略
- 每个站点独立缓存目录
- 考虑使用Redis/Memcached
八、备份策略
-
独立备份
- 每个站点的数据库单独备份
- 文件系统分开备份
-
自动化
# 示例备份脚本 mysqldump -u user site1_db > /backup/site1_$(date +%Y%m%d).sql
九、SSL证书
- 为每个域名配置独立的SSL证书
- 考虑使用Let’s Encrypt通配符证书
十、监控与日志
-
日志分离
- 每个站点独立的访问日志和错误日志
- 定期日志轮转
-
监控指标
- 每个站点的资源使用情况
- 数据库连接数监控
快速检查清单
- [ ] 独立的数据库和用户
- [ ] 正确的文件权限
- [ ] 独立的PHP-FPM池
- [ ] 正确的虚拟主机配置
- [ ] SSL证书配置
- [ ] 备份方案就绪
- [ ] 监控告警设置
通过以上措施,可以确保多个WordPress站点在同一服务器上安全、稳定地运行,同时便于维护和扩展。
CLOUD技术笔记