加油
努力

在同一台云主机上部署多个WordPress需要怎么配置?

在同一台云主机上部署多个 WordPress 站点是常见需求,可以通过以下几种方式实现。以下是详细配置步骤和建议:


一、部署方式选择

✅ 推荐方案:Nginx/Apache + PHP-FPM + MySQL 多数据库/多表前缀

在同一台云主机上运行多个 WordPress 实例,通常使用 虚拟主机(Virtual Host) 技术来区分不同站点。


二、基础环境准备

确保你的云主机已安装以下软件:

# 常见组合(LAMP 或 LEMP)
- Linux(如 Ubuntu/CentOS)
- Web服务器:Nginx 或 Apache
- PHP(推荐 PHP 7.4+)
- MySQL 或 MariaDB
- phpMyAdmin(可选,用于管理数据库)

例如在 Ubuntu 上安装 LEMP:

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

三、部署多个 WordPress 站点的步骤

步骤 1:创建网站目录结构

为每个 WordPress 站点创建独立目录:

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

步骤 2:下载并解压 WordPress

分别下载 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 chown -R www-data:www-data /var/www/site2.com
sudo chmod -R 755 /var/www/*

步骤 3:为每个站点创建独立数据库

登录 MySQL:

sudo mysql -u root -p

创建数据库和用户:

-- 站点1
CREATE DATABASE wp_site1;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strong_password1';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
FLUSH PRIVILEGES;

-- 站点2
CREATE DATABASE wp_site2;
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'strong_password2';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user2'@'localhost';
FLUSH PRIVILEGES;

EXIT;

📌 注意:也可以使用同一个数据库但不同表前缀(不推荐生产环境)


步骤 4:配置 Nginx 虚拟主机(推荐)

创建站点配置文件:

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/php7.4-fpm.sock; # 根据你的 PHP 版本调整
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

同理创建 /etc/nginx/sites-available/site2.com,修改 server_nameroot 路径。

启用站点:

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 rm /etc/nginx/sites-enabled/default

# 测试配置并重启
sudo nginx -t
sudo systemctl reload nginx

步骤 5:配置 WordPress

访问 http://site1.comhttp://site2.com,进入 WordPress 安装向导。

在安装过程中:

  • 数据库名:wp_site1 / wp_site2
  • 用户名:user1 / user2
  • 密码:对应密码
  • 表前缀:可自定义如 wp1_wp2_(即使共用库也避免冲突)

四、可选优化与安全建议

  1. 使用 HTTPS(Let’s Encrypt)

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d site1.com -d www.site1.com
  2. PHP 配置隔离(可选)
    可以为每个站点配置独立的 PHP-FPM pool,限制资源使用。

  3. 防火墙设置

    sudo ufw allow 'Nginx Full'
  4. 定期备份数据库和文件


五、其他部署方式对比

方式 说明 优缺点
多目录 + 虚拟主机 如上所述 ✅ 推荐,隔离好,性能高
子目录部署 如 site.com/blog1, /blog2 共享主站,适合内容关联强
Docker 容器化 每个 WordPress 一个容器 ⭐ 最佳隔离,但复杂度高
多站点网络(Multisite) WordPress 内建功能 适合同一品牌多个子站

💡 如果你希望完全隔离、易于管理,推荐 虚拟主机方式;如果追求现代化运维,可用 Docker + Nginx Proxy Manager


六、常见问题排查

  • 403 Forbidden:检查目录权限和 index.php 是否存在
  • 502 Bad Gateway:检查 PHP-FPM 是否运行,sock 路径是否正确
  • 数据库连接失败:确认用户名、密码、数据库名、权限
  • 伪静态失效:确保 Nginx 的 try_files 配置正确

总结

✅ 在同一台云主机部署多个 WordPress 的关键点:

  1. 每个站点独立目录
  2. 每个站点独立数据库或表前缀
  3. 使用 Nginx/Apache 虚拟主机区分域名
  4. 正确配置 PHP 和数据库权限
  5. 做好安全和备份

如有需要,我可以提供自动化脚本或 Docker 部署方案。欢迎继续提问!

云服务器