在Linux服务器上部署多个WordPress需要哪些配置?

在 Linux 服务器上部署多个 WordPress 站点,通常采用 虚拟主机(Virtual Host)反向(Reverse Proxy) 的方式,结合 LAMP(Linux + Apache + MySQL/MariaDB + PHP)或 LEMP(Nginx 替代 Apache)架构。以下是详细的配置步骤和建议。


一、基础环境准备

  1. 操作系统

    • 推荐使用 Ubuntu Server LTS 或 CentOS Stream / RHEL。
    • 保持系统更新:sudo apt update && sudo apt upgrade(Ubuntu/Debian)或 sudo dnf update(CentOS/RHEL)
  2. 安装 LAMP 或 LEMP 堆栈

方案 A:LAMP(Apache)

# 安装 Apache, MySQL, PHP
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-zip

方案 B:LEMP(Nginx)

sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip

二、为每个 WordPress 站点创建独立资源

1. 创建站点目录

sudo mkdir -p /var/www/site1.com /var/www/site2.com

2. 下载并解压 WordPress

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz

# 复制到各个站点目录
sudo cp -r wordpress/* /var/www/site1.com/
sudo cp -r wordpress/* /var/www/site2.com/

# 设置权限
sudo chown -R www-data:www-data /var/www/site1.com
sudo chmod -R 755 /var/www/site1.com

对每个站点重复此操作,并确保文件所有权正确。


三、为每个站点创建独立数据库

sudo mysql -u root -p
CREATE DATABASE wp_site1;
CREATE DATABASE wp_site2;

CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password1';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'strong_password2';

GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';

FLUSH PRIVILEGES;
EXIT;

四、配置 Web 服务器

方案 A:Apache 虚拟主机

  1. 创建虚拟主机配置文件:
    sudo nano /etc/apache2/sites-available/site1.com.conf

内容示例:

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com

    <Directory /var/www/site1.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/site1_error.log
    CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>

同样创建 site2.com.conf

  1. 启用站点并重启 Apache:
    sudo a2ensite site1.com.conf
    sudo a2ensite site2.com.conf
    sudo a2enmod rewrite  # 启用 URL 重写(WordPress 友好链接需要)
    sudo systemctl restart apache2

方案 B:Nginx 虚拟主机(Server Blocks)

  1. 创建配置文件:
    sudo nano /etc/nginx/sites-available/site1.com

内容示例:

server {
    listen 80;
    server_name site1.com www.site1.com;

    root /var/www/site1.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 根据你的 PHP 版本调整
    }

    location ~ /.ht {
        deny all;
    }
}
  1. 启用站点:
    
    sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/

sudo nginx -t # 测试配置
sudo systemctl restart nginx


---

### 五、配置 WordPress

对每个站点:

1. 访问 `http://site1.com/wp-admin/install.php`
2. 按提示填写数据库信息:
   - 数据库名:`wp_site1`
   - 用户名:`user_site1`
   - 密码:`strong_password1`
   - 数据库主机:`localhost`
   - 表前缀:可设为 `wp1_`、`wp2_` 避免冲突

3. 完成安装向导。

---

### 六、安全与优化建议

1. **启用 HTTPS(推荐使用 Let's Encrypt)**
   ```bash
   sudo apt install certbot python3-certbot-apache  # 或 python3-certbot-nginx
   sudo certbot --apache -d site1.com -d www.site1.com
  1. 防火墙设置(UFW)

    sudo ufw allow 'Apache Full'  # 或 Nginx Full
    sudo ufw enable
  2. 定期备份

    • 备份数据库:mysqldump -u user -p wp_site1 > backup.sql
    • 备份文件:tar -czf site1-backup.tar.gz /var/www/site1.com
  3. PHP 安全配置

    • 编辑 /etc/php/*/apache2/php.ini/etc/php/*/fpm/php.ini
    • 设置:display_errors = Off, log_errors = On
  4. 使用不同 wp-config.php 文件避免混淆

    • 可以通过复制模板自动部署,避免配置错误。

七、可选:使用 Docker 简化多站管理(高级)

也可使用 Docker Compose 为每个 WordPress 站点运行独立容器,实现完全隔离。


总结

步骤 内容
1 搭建 LAMP/LEMP 环境
2 为每个站点创建独立目录
3 为每个站点创建独立数据库和用户
4 配置 Web 服务器虚拟主机
5 安装并配置每个 WordPress 实例
6 启用 HTTPS 和安全加固

这样即可在同一台 Linux 服务器上安全、高效地运行多个独立的 WordPress 站点。

如需自动化部署脚本或 Docker 示例,可进一步说明需求。