在一台服务器上部署多个 WordPress 网站是完全可行的,常见于共享主机或 VPS(虚拟私有服务器)环境中。以下是实现方法和一些注意事项:
✅ 一、准备工作
-
服务器环境:
- 操作系统:通常使用 Linux(如 Ubuntu 或 CentOS)
- Web 服务器:Nginx 或 Apache
- 数据库:MySQL / MariaDB
- PHP:WordPress 所需版本(一般为 7.4+)
-
域名解析:
- 每个 WordPress 网站需要一个独立的域名或子域名(如
example.com和blog.example.com)
- 每个 WordPress 网站需要一个独立的域名或子域名(如
✅ 二、部署方式
方法一:多站点(Multisite)模式(推荐用于统一管理)
适用于想统一管理多个网站的情况。
步骤:
- 安装单个 WordPress。
- 启用 Multisite 功能:
- 编辑
wp-config.php,添加以下内容:define('WP_ALLOW_MULTISITE', true);
- 编辑
- 登录后台 → 工具 → 配置网络。
- 选择子域名或子目录模式。
- 按照提示修改配置文件(
wp-config.php和.htaccess或 Nginx 配置)。 - 创建新站点即可。
优点:
- 统一用户权限、插件管理
- 资源集中管理
缺点:
- 所有网站共用数据库表前缀
- 插件和主题对所有站点生效(除非单独设置)
- 故障可能影响所有站点
方法二:多个独立 WordPress 实例(推荐用于隔离性需求)
适用于希望每个网站独立运行、互不影响的场景。
步骤:
-
创建多个数据库:
- 每个 WordPress 使用不同的数据库(或不同表前缀)。
-
配置 Web 服务器:
- Apache:配置多个 VirtualHost
- Nginx:配置多个 server 块
示例 Nginx 配置两个网站:
# site1.conf server { listen 80; server_name example.com; root /var/www/site1; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } } # site2.conf server { listen 80; server_name blog.example.com; root /var/www/site2; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } } -
下载并解压多个 WordPress 实例:
- 分别放在
/var/www/site1,/var/www/site2等路径下 - 每个站点安装时指定不同的数据库名和表前缀
- 分别放在
-
分别完成安装流程
优点:
- 完全独立,互不影响
- 可以使用不同 PHP 版本(通过 FPM 配置)
- 更适合不同客户或项目
缺点:
- 占用更多磁盘空间
- 更新维护工作量较大
✅ 三、资源优化建议
- 使用缓存插件(如 WP Super Cache、Redis)
- 配置 OPcache 提升 PHP 性能
- 使用 Let’s Encrypt 为多个站点启用 HTTPS
- 监控服务器负载,避免资源耗尽
✅ 四、工具推荐
| 工具 | 用途 |
|---|---|
| Let’s Encrypt | 免费 SSL 证书 |
| WordOps | 快速部署 WordPress 的工具 |
| EasyEngine | 类似 WordOps,支持 Nginx + WordPress 快速搭建 |
| Docker | 容器化部署多个 WordPress 实例 |
✅ 五、总结
| 方式 | 是否推荐 | 适用场景 |
|---|---|---|
| WordPress 多站点(Multisite) | ✅ 推荐 | 统一管理多个网站,如企业内网、教育平台 |
| 多个独立 WordPress 实例 | ✅ 推荐 | 网站之间相互独立,如托管多个客户网站 |
如果你告诉我你使用的操作系统、Web 服务器(Apache/Nginx)以及具体需求(比如是否要统一管理),我可以提供更具体的配置示例。
ECLOUD博客