在同一台 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.com和site2.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.comhttp://site2.com
在安装过程中:
- 数据库名:
wp_site1和wp_site2 - 用户名:
wp_user1和wp_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 版本 的配置方法。欢迎继续提问!
云小栈