在同一个服务器上搭建 5 个独立的 WordPress 站点(即每个站点拥有独立域名、独立数据库、独立文件、互不干扰),有以下几种主流且推荐的方式,按推荐度和实用性排序:
✅ 推荐方案:多站点子目录/子域名 + 独立安装(最灵活、安全、易维护)
⚠️ 注意:这不是 WordPress 的「Multisite 多站点网络」(它共享核心和插件,管理统一但隔离性弱),而是 5 个完全独立的 WordPress 实例 —— 这才是真正的“网站点”。
✅ 方案一:独立安装(强烈推荐 ✅)
每个站点使用独立:
- 域名(如
site1.com,site2.net,blog.example.org) - 根目录(如
/var/www/site1.com/,/var/www/site2.net/) - MySQL 数据库(
wp_site1,wp_site2, …) - PHP-FPM 进程池(可选,提升隔离与性能)
- Nginx/Apache 虚拟主机配置
🛠 操作步骤(以 Ubuntu + Nginx + MariaDB + PHP 8.2 为例):
1️⃣ 准备环境(一次执行)
sudo apt update && sudo apt install -y nginx mariadb-server php8.2 php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-xmlrpc php8.2-zip php8.2-opcache
sudo mysql_secure_installation # 初始化数据库安全设置
2️⃣ 为每个站点创建独立数据库和用户(示例:site1.com)
sudo mysql -u root -p -e "
CREATE DATABASE wp_site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user1'@'localhost' IDENTIFIED BY '强密码1';
GRANT ALL ON wp_site1.* TO 'wp_user1'@'localhost';
FLUSH PRIVILEGES;"
✅ 重复此步创建 wp_site2 ~ wp_site5 及对应用户。
3️⃣ 创建网站根目录 & 设置权限
sudo mkdir -p /var/www/site1.com /var/www/site2.net /var/www/site3.org /var/www/site4.blog /var/www/site5.dev
sudo chown -R $USER:$USER /var/www/site1.com
sudo chmod -R 755 /var/www
4️⃣ 下载并部署 WordPress(以 site1.com 为例)
cd /var/www/site1.com
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz --strip-components=1
rm latest.tar.gz
cp wp-config-sample.php wp-config.php
✅ 编辑 wp-config.php,填入数据库名、用户名、密码、DB_HOST(通常 localhost)
✅ 强烈建议添加唯一密钥(https://api.wordpress.org/secret-key/1.1/salt/)
5️⃣ 配置 Nginx 虚拟主机(/etc/nginx/sites-available/site1.com)
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /.ht {
deny all;
}
}
✅ 启用站点:
sudo ln -sf /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
✅ 对 site2.net ~ site5.dev 重复步骤 4–5(注意修改域名、路径、数据库配置)。
6️⃣ (可选)启用 HTTPS(Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d site1.com -d www.site1.com
# 按提示自动配置 HTTPS,后续对其他域名重复执行
7️⃣ 完成安装
访问 http://site1.com → 按向导完成 WordPress 安装(填写站点标题、管理员账号等)。
✅ 5 个站点完全独立:可各自升级核心/主题/插件,互不影响;数据库分离,安全性高;SEO、SSL、缓存均可单独配置。
🚫 不推荐方案(避免踩坑)
| 方案 | 问题 |
|---|---|
| WordPress Multisite(多站点网络) | 所有站点共享同一数据库表前缀(如 wp_2_posts)、同一后台、同一插件/主题管理。一旦核心或插件出错,5 站全瘫;无法单独备份/迁移某一站;SEO 和权限管理复杂。❌ 不满足“独立”需求。 |
| 子目录型伪多站(如 site.com/site1/) | 共享主站数据库与用户系统;URL 层级深,SEO 劣势;难以实现真正独立域名绑定。❌ 非独立。 |
| Docker 单容器跑 5 站 | 容器设计原则是「一容器一进程」,强行塞 5 站违背最佳实践,运维复杂。✅ 可用 Docker Compose(每个站一个容器),但对新手过重。 |
✅ 进阶优化建议(提升稳定性与效率)
| 项目 | 推荐做法 |
|---|---|
| PHP 隔离 | 为每个站点配置独立 PHP-FPM pool(/etc/php/8.2/fpm/pool.d/site1.conf),限制内存/CPU/进程数,防一占全崩。 |
| 备份策略 | 使用 wp-cli + cron 自动备份:wp db export /backups/site1_$(date +%F).sql --path=/var/www/site1.com搭配 rsync 或 rclone 同步到异地。 |
| 缓存提速 | 每站单独启用 Redis 缓存(需安装 php-redis + WP 插件如 Redis Object Cache)或 Nginx FastCGI 缓存。 |
| 安全加固 | 每站启用 Wordfence 或 Sucuri;禁用 XML-RPC;隐藏 wp-login.php(用插件如 WPS Hide Login);定期更新。 |
| 监控告警 | 使用 netdata 或 Uptime Kuma 监控各站点 HTTP 状态码、响应时间。 |
✅ 总结:你的 5 站独立架构图
[公网]
│
├─ site1.com → /var/www/site1.com → DB: wp_site1 → Nginx vhost + PHP-FPM pool1
├─ site2.net → /var/www/site2.net → DB: wp_site2 → Nginx vhost + PHP-FPM pool2
├─ site3.org → /var/www/site3.org → DB: wp_site3 → ...
├─ site4.blog → /var/www/site4.blog → DB: wp_site4
└─ site5.dev → /var/www/site5.dev → DB: wp_site5
✅ 完全符合“独立”定义:独立域名、独立文件、独立数据库、独立配置、独立管理、独立备份。
需要我为你:
- ✅ 自动生成 5 个 Nginx 配置文件模板?
- ✅ 提供一键部署脚本(Bash)?
- ✅ 输出 PHP-FPM 隔离配置样例?
- ✅ 推荐轻量级面板(如 aaPanel / RunCloud)简化操作?
欢迎随时告诉我,我可以立刻生成 👇
ECLOUD博客