加油
努力

如何在同一台服务器上搭建两个WordPress站点?

在同一台 VPS 上搭建两个 WordPress 站点是完全可行的,通常通过 虚拟主机(Virtual Hosts) 配合 Web 服务器(如 Apache 或 Nginx)来实现。以下是使用 Nginx + PHP-FPM + MySQL/MariaDB 在 Ubuntu 系统上部署两个独立 WordPress 站点的详细步骤:


✅ 前提条件

  • 一台 VPS(推荐 Ubuntu 20.04/22.04)
  • 已安装 LEMP 环境(Linux, Nginx, MySQL, PHP)
  • 两个域名(例如:site1.comsite2.com),或使用子域名/本地测试域名

🔧 步骤一:安装 LEMP 环境(如果未安装)

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Nginx
sudo apt install nginx -y

# 安装 MySQL(或 MariaDB)
sudo apt install mysql-server -y

# 安装 PHP 及常用扩展
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

启动并启用服务:

sudo systemctl enable nginx mysql php-fpm
sudo systemctl start nginx mysql php-fpm

🌐 步骤二:为每个站点创建目录和配置

1. 创建两个站点的根目录

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

设置权限:

sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www

2. 下载 WordPress 到每个目录

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

复制到两个站点目录:

sudo cp -r /tmp/wordpress/* /var/www/site1.com/html/
sudo cp -r /tmp/wordpress/* /var/www/site2.com/html/

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

登录 MySQL:

sudo mysql -u root

执行以下 SQL(为两个站点分别创建数据库和用户):

-- 为 site1 创建数据库和用户
CREATE DATABASE wp_site1;
CREATE USER 'wp_user1'@'localhost' IDENTIFIED BY 'strong_password_1';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'wp_user1'@'localhost';
FLUSH PRIVILEGES;

-- 为 site2 创建数据库和用户
CREATE DATABASE wp_site2;
CREATE USER 'wp_user2'@'localhost' IDENTIFIED BY 'strong_password_2';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'wp_user2'@'localhost';
FLUSH PRIVILEGES;

EXIT;

⚙️ 步骤四:配置 Nginx 虚拟主机

1. 为 site1.com 创建配置文件

sudo nano /etc/nginx/sites-available/site1.com

内容如下:

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

    root /var/www/site1.com/html;
    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版本调整
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

2. 为 site2.com 创建配置文件

sudo nano /etc/nginx/sites-available/site2.com

内容类似,仅修改域名和路径:

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

    root /var/www/site2.com/html;
    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;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

3. 启用站点(创建软链接到 sites-enabled)

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/

4. 测试 Nginx 配置并重启

sudo nginx -t
sudo systemctl reload nginx

🛠️ 步骤五:配置 WordPress

访问以下地址完成安装:

  • http://site1.com
  • http://site2.com

在安装过程中:

  • 数据库名:wp_site1wp_site2
  • 用户名:wp_user1wp_user2
  • 密码:对应设置的密码
  • 数据库主机:localhost
  • 表前缀建议不同(如 wp1_, wp2_)避免混淆

🔄 可选:使用子域名或本地测试

如果你没有真实域名,可以用:

  • /etc/hosts 添加本地映射:
    127.0.0.1 site1.com
    127.0.0.1 site2.com

    然后浏览器中访问即可。


✅ 总结

项目 站点1 站点2
域名 site1.com site2.com
网站根目录 /var/www/site1.com/html /var/www/site2.com/html
数据库 wp_site1 wp_site2
数据库用户 wp_user1 wp_user2
Nginx 配置 /etc/nginx/sites-available/site1.com /etc/nginx/sites-available/site2.com

📌 注意事项

  • 每个站点使用独立数据库更安全、便于管理。
  • 定期备份数据库和网站文件。
  • 可后续为每个站点配置 SSL(使用 Let’s Encrypt 免费证书):
    sudo certbot --nginx -d site1.com -d www.site1.com

如有需要,我也可以提供 Apache 版本 的配置方法。欢迎继续提问!

云服务器