在一台服务器上安装两个 WordPress 网站是非常常见的需求。根据服务器的配置、技术能力以及管理需求,主要有以下几种主流方案:
✅ 推荐方案对比
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 1. 使用面板(如宝塔、aaPanel) | 最简单、可视化操作、一键部署 | 占用一定资源、依赖第三方工具 | 新手、中小站长、快速上线 |
| 2. Nginx/Apache + PHP-FPM(手动配置) | 灵活、高性能、无额外开销 | 需要 Linux 基础、配置复杂 | 有经验的用户、生产环境 |
| 3. Docker 容器化 | 隔离性好、易迁移、版本可控 | 学习曲线稍陡、需熟悉 Docker | 开发者、多版本测试、DevOps 团队 |
| 4. 子域名/子目录共享 WP Multisite | 单实例管理、统一更新 | 插件兼容性风险、备份恢复复杂 | 同一团队管理的多个小站 |
📌 对于大多数用户,推荐使用【方案1:宝塔面板】或【方案3:Docker】。
🔧 方案一:使用宝塔面板(最推荐新手)
步骤简述:
-
安装宝塔面板
# CentOS 示例 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec(其他系统见宝塔官网)
-
登录宝塔后台
- 访问
http://你的服务器IP:8888 - 安装推荐的软件套件:Nginx + MySQL + PHP
- 访问
-
添加第一个网站
- 点击「网站」→「添加站点」
- 输入域名(如
www.example1.com) - 选择 PHP 版本(建议 7.4 或 8.0+)
- 勾选「创建数据库」
- 完成后,通过 FTP 或宝塔文件管理器上传 WordPress 安装包并解压
-
运行 WordPress 安装向导
- 访问
http://www.example1.com - 按提示填写数据库信息,完成安装
- 访问
-
重复步骤 3–4 添加第二个网站
- 使用不同域名(如
www.example2.com或blog.example1.com) - 创建独立数据库和独立目录
- 再次运行安装向导
- 使用不同域名(如
✅ 优点:每个网站完全隔离,互不影响;支持 SSL 证书自动申请;方便管理。
🐳 方案二:使用 Docker(推荐进阶用户)
前提条件:
- 已安装 Docker 和 Docker Compose
步骤简述:
1. 创建项目目录结构
mkdir ~/wp-sites
cd ~/wp-sites
mkdir site1 site2
2. 为 site1 创建 docker-compose.yml
# ~/wp-sites/site1/docker-compose.yml
version: '3'
services:
wordpress:
image: wordpress:php8.2-apache
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: strong_password
WORDPRESS_DB_NAME: wp_site1
volumes:
- ./wp-content:/var/www/html/wp-content
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: wp_site1
MYSQL_USER: wp_user
MYSQL_PASSWORD: strong_password
volumes:
- db_data_site1:/var/lib/mysql
volumes:
db_data_site1:
3. 启动 site1
cd ~/wp-sites/site1
docker compose up -d
4. 为 site2 复制并修改配置
- 复制
site1到site2 - 修改端口为
8082、数据库名、用户名等 - 启动 site2
5. 反向X_X(可选但推荐)
使用 Nginx 或 Caddy 将域名映射到对应端口:
server {
listen 80;
server_name www.example1.com;
location / {
proxy_pass http://localhost:8081;
}
}
server {
listen 80;
server_name www.example2.com;
location / {
proxy_pass http://localhost:8082;
}
}
✅ 优点:环境隔离、易于备份和迁移、可轻松升级 WordPress 版本。
🖥️ 方案三:手动配置 LAMP/LNMP(适合高级用户)
核心思路:
- 安装 Apache/Nginx + PHP + MySQL
- 为每个网站创建独立的虚拟主机配置
- 每个网站使用独立的数据库和用户
示例(Nginx + PHP-FPM):
-
创建目录
mkdir -p /var/www/site1 /var/www/site2 -
配置 Nginx 虚拟主机
# /etc/nginx/sites-available/site1.conf server { listen 80; server_name www.example1.com; root /var/www/site1; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } -
启用站点并重启 Nginx
ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx -
创建 MySQL 数据库和用户
CREATE DATABASE wp_site1; CREATE USER 'wp_user1'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON wp_site1.* TO 'wp_user1'@'localhost'; FLUSH PRIVILEGES; -
上传 WordPress 并运行安装向导
重复以上步骤为 site2 创建另一套配置。
⚠️ 重要注意事项
-
资源分配
确保服务器内存/CPU 足够支撑两个 WordPress 实例。建议至少 2GB RAM,推荐 4GB+。 -
安全加固
- 为每个网站设置不同的数据库密码
- 定期更新 WordPress、主题、插件
- 启用防火墙(UFW/firewalld)
- 安装 SSL 证书(Let’s Encrypt 免费)
-
备份策略
- 分别备份每个网站的文件和数据库
- 可使用宝塔的定时备份功能或 Docker 卷备份
-
性能优化
- 启用 OPcache
- 使用 CDN
- 缓存插件(如 WP Super Cache、W3 Total Cache)
-
避免冲突
- 不要共用同一个 WordPress 安装目录
- 不要共用同一个数据库用户(除非明确知道风险)
❓ FAQ
Q:能否用同一个 WordPress 安装管理两个域名?
A:可以,但需要配置 WP_SITEURL 和 WP_HOME,或使用插件如 WordPress MU Domain Mapping。但不推荐,维护成本高且易出错。
Q:两个网站之间会互相影响吗?
A:如果使用上述隔离方案(独立目录、独立数据库、独立进程),则不会互相影响。
Q:如何选择 PHP 版本?
A:建议使用 PHP 8.0 或更高版本,兼容性更好、性能更优。确保你的插件兼容该版本。
如你告诉我你的服务器操作系统、是否已有面板、技术水平等信息,我可以提供更具体的指导!
CLOUD云