在一台服务器上搭建多个 WordPress 网站是完全可行的,常见的方法有以下几种:
✅ 一、使用虚拟主机(Virtual Host)配置
这是最常见的方式,适用于 Apache 或 Nginx 这类 Web 服务器软件。
🔧 步骤如下:
1. 安装 LAMP 或 LEMP 环境
- LAMP:Linux + Apache + MySQL + PHP
- LEMP:Linux + Nginx + MySQL + PHP
你可以选择其中一个组合来搭建环境。例如:
sudo apt update && sudo apt install apache2 mysql-server php php-mysql -y
2. 创建多个网站目录
例如:
/var/www/site1
/var/www/site2
3. 为每个站点创建虚拟主机配置文件(Apache 示例)
以 Apache 为例,在 /etc/apache2/sites-available/ 创建两个 .conf 文件:
site1.conf
<VirtualHost *:80>
ServerAdmin admin@site1.com
DocumentRoot /var/www/site1
ServerName site1.com
ServerAlias www.site1.com
<Directory /var/www/site1/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
site2.conf
<VirtualHost *:80>
ServerAdmin admin@site2.com
DocumentRoot /var/www/site2
ServerName site2.com
ServerAlias www.site2.com
<Directory /var/www/site2/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
启用这些站点:
sudo a2ensite site1.conf
sudo a2ensite site2.conf
sudo systemctl reload apache2
4. 为每个站点创建独立的数据库和用户(MySQL)
CREATE DATABASE wp_site1;
CREATE USER 'wp_user1'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'wp_user1'@'localhost';
FLUSH PRIVILEGES;
-- 同理创建 wp_site2 和 wp_user2
5. 分别下载并配置 WordPress 到各自目录
cd /var/www/site1
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
cp -r wordpress/* .
rm -rf wordpress latest.tar.gz
然后访问 http://site1.com/wp-admin/install.php 安装 WordPress,并填写对应的数据库信息。
重复这个步骤用于其他网站。
✅ 二、使用子目录或子域名方式(适合共用一个 WordPress)
如果你希望所有网站都运行在同一个 WordPress 实例中,可以使用 WordPress 多站点网络(Multisite) 功能。
📌 优点:
- 统一管理后台
- 插件/主题共享
- 用户统一登录
📌 缺点:
- 所有站点共享插件/主题资源
- 单点故障风险高
启用多站点步骤:
-
修改
wp-config.php添加:define('WP_ALLOW_MULTISITE', true); -
登录后台 → 工具 → 配置网络(Network Setup)
-
按提示选择子域名或子目录模式
-
根据提示修改
wp-config.php和.htaccess文件 -
重启 Apache/Nginx
✅ 三、使用 Docker 容器化部署(高级推荐)
Docker 可以让你轻松隔离多个 WordPress 站点,互不干扰。
示例命令(使用 docker-compose):
# docker-compose.yml
version: '3'
services:
site1:
image: wordpress
ports:
- "8001:80"
environment:
WORDPRESS_DB_NAME: wp_site1
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: pass1
volumes:
- ./site1:/var/www/html
site2:
image: wordpress
ports:
- "8002:80"
environment:
WORDPRESS_DB_NAME: wp_site2
WORDPRESS_DB_USER: user2
WORDPRESS_DB_PASSWORD: pass2
volumes:
- ./site2:/var/www/html
启动容器:
docker-compose up -d
访问:
http://localhost:8001→ site1http://localhost:8002→ site2
✅ 四、注意事项
| 注意事项 | 说明 |
|---|---|
| 域名绑定 | 每个网站需要绑定不同的域名或子域名 |
| 数据库分离 | 推荐每个站点使用独立数据库 |
| 权限问题 | 确保网站目录权限正确(通常为 www-data) |
| 性能优化 | 如果流量大,建议使用缓存插件或 CDN |
| SSL 支持 | 可以为每个站点单独申请 SSL 证书 |
✅ 总结
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 虚拟主机 | 多个独立 WordPress 站点 | 灵活、性能好 | 需要手动配置 |
| WordPress 多站点 | 管理多个相关网站 | 易于统一管理 | 不够灵活 |
| Docker 容器 | 开发测试或部署多个项目 | 隔离性好,易于维护 | 学习成本略高 |
如需我帮你写一份完整的配置示例或者脚本,请告诉我你使用的 Web 服务器(Apache/Nginx/Docker)以及系统版本(如 Ubuntu 22.04)。
云知识