在同一台Linux服务器上部署多个WordPress需要注意什么?

在同一台Linux服务器上部署多个WordPress站点时,需要注意以下关键点:

一、架构规划

  1. 隔离方式选择

    • 虚拟主机(推荐):通过Nginx/Apache虚拟主机配置
    • Docker容器:每个WordPress独立容器
    • 子目录安装:同一数据库不同前缀
  2. 域名规划

    • 每个站点使用独立域名或子域名
    • 配置正确的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或端口

三、数据库管理

  1. 数据库分离

    • 为每个WordPress创建独立数据库
    • 使用不同数据库用户和强密码
  2. 连接配置

    // 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

五、文件系统隔离

  1. 目录结构

    /var/www/
    ├── site1/
    │   ├── wp-content/
    │   └── wp-config.php
    ├── site2/
    │   ├── wp-content/
    │   └── wp-config.php
    └── logs/
    ├── site1.access.log
    └── site2.access.log
  2. 权限设置

    # 每个站点使用不同系统用户
    sudo useradd -r -s /bin/false site1_user
    sudo chown -R site1_user:site1_group /var/www/site1

六、安全考虑

  1. 权限最小化原则

    • Web用户只读访问核心文件
    • 仅wp-content/uploads目录可写
  2. 防火墙配置

    • 限制不必要的端口访问
    • 使用Fail2ban防止暴力破解

七、性能优化

  1. 资源限制

    • 为每个PHP-FPM池设置内存限制
    • 配置OPcache共享内存
  2. 缓存策略

    • 每个站点独立缓存目录
    • 考虑使用Redis/Memcached

八、备份策略

  1. 独立备份

    • 每个站点的数据库单独备份
    • 文件系统分开备份
  2. 自动化

    # 示例备份脚本
    mysqldump -u user site1_db > /backup/site1_$(date +%Y%m%d).sql

九、SSL证书

  • 为每个域名配置独立的SSL证书
  • 考虑使用Let’s Encrypt通配符证书

十、监控与日志

  1. 日志分离

    • 每个站点独立的访问日志和错误日志
    • 定期日志轮转
  2. 监控指标

    • 每个站点的资源使用情况
    • 数据库连接数监控

快速检查清单

  • [ ] 独立的数据库和用户
  • [ ] 正确的文件权限
  • [ ] 独立的PHP-FPM池
  • [ ] 正确的虚拟主机配置
  • [ ] SSL证书配置
  • [ ] 备份方案就绪
  • [ ] 监控告警设置

通过以上措施,可以确保多个WordPress站点在同一服务器上安全、稳定地运行,同时便于维护和扩展。

云服务器