在同一台服务器上搭建两个 WordPress 网站是完全可行的,常见于共享主机、VPS 或云服务器环境。以下是通用且安全的操作步骤(以 Linux + Apache/Nginx + PHP + MySQL 为例):
✅ 前提条件
- 一台已安装 Web 服务器(Apache/Nginx)、PHP、MySQL/MariaDB 的服务器
- 拥有 root 或 sudo 权限
- 两个独立的域名(或子域名),如
site1.com和site2.com(或site1.example.com/site2.example.com)
📁 方案一:多站点目录 + 独立数据库(推荐,简单安全)
步骤 1:准备目录结构
# 创建两个网站根目录
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
# 设置权限(假设用户为 www-data)
sudo chown -R www-data:www-data /var/www/site1
sudo chown -R www-data:www-data /var/www/site2
sudo chmod -R 755 /var/www/site1 /var/www/site2
步骤 2:下载并解压 WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
# 分别部署到两个目录
sudo cp -r wordpress/* /var/www/site1/
sudo cp -r wordpress/* /var/www/site2/
步骤 3:配置虚拟主机(以 Apache 为例)
创建 site1 配置文件 /etc/apache2/sites-available/site1.conf
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1
<Directory /var/www/site1>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
创建 site2 配置文件 /etc/apache2/sites-available/site2.conf
<VirtualHost *:80>
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/site2
<Directory /var/www/site2>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>
启用站点并重启 Apache:
sudo a2ensite site1.conf site2.conf
sudo a2dissite 000-default.conf # 可选:禁用默认站点
sudo systemctl restart apache2
🔔 Nginx 用户:需在
/etc/nginx/sites-available/中创建对应 server 块,逻辑类似(注意root指令和location / { try_files $uri $uri/ /index.php?$args; })。
步骤 4:创建独立数据库与用户
登录 MySQL:
mysql -u root -p
执行以下 SQL(替换密码和域名):
-- 创建 site1 数据库和用户
CREATE DATABASE site1_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site1_user'@'localhost' IDENTIFIED BY 'strong_password_1';
GRANT ALL PRIVILEGES ON site1_db.* TO 'site1_user'@'localhost';
FLUSH PRIVILEGES;
-- 创建 site2 数据库和用户
CREATE DATABASE site2_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site2_user'@'localhost' IDENTIFIED BY 'strong_password_2';
GRANT ALL PRIVILEGES ON site2_db.* TO 'site2_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤 5:运行 WordPress 安装向导
-
访问
http://site1.com→ 按提示安装:- 数据库名:
site1_db - 用户名:
site1_user - 密码:
strong_password_1 - 主机:
localhost - 表前缀:可自定义(如
wp_site1_)
- 数据库名:
-
同样访问
http://site2.com完成第二个站点安装(使用site2_db等凭据)。
✅ 完成后,两个网站完全独立,互不干扰。
⚠️ 注意事项
| 项目 | 建议 |
|---|---|
| 安全性 | 为每个站点使用不同 DB 用户;定期更新 WP、主题、插件;启用防火墙(如 UFW) |
| 性能优化 | 可为每个站点配置独立缓存(如 Redis/Memcached 命名空间区分) |
| 备份策略 | 分别备份两个站点的文件 + 数据库(可用 mysqldump 脚本自动化) |
| SSL 证书 | 每个域名单独申请 Let’s Encrypt 证书(certbot --nginx -d site1.com -d site2.com 支持多域名) |
🔄 替代方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| 独立目录+独立 DB(上述方法) | 安全隔离、易维护、兼容性好 | 需手动管理多个配置 |
| WordPress Multisite | 统一管理后台、节省资源 | 配置复杂、单点故障风险高、主题/插件全局生效 |
| Docker 容器化 | 环境隔离、快速部署、版本可控 | 学习曲线较陡,需 Docker 基础 |
💡 若你追求极致隔离与弹性扩展,可考虑用 Docker Compose 为每个站点启动独立容器(含 Nginx + PHP-FPM + MySQL),但初期成本略高。
需要我提供:
- 完整的 Nginx 配置示例?
- 自动部署脚本(Bash/Ansible)?
- WordPress Multisite 搭建指南?
欢迎告诉我你的具体环境(如:Ubuntu 22.04?宝塔面板?CloudPanel?)我可进一步定制方案。
云小栈