是的,一个服务器可以搭建两个(甚至多个)WordPress网站。这在实际应用中非常常见,无论是个人博客、企业官网,还是为客户托管多个站点,都可以通过合理配置实现。
以下是几种常见的实现方式:
✅ 方法一:使用虚拟主机(Virtual Hosts)——推荐(适用于 Apache 或 Nginx)
这是最常见的方式,适用于 Linux 服务器(如 Ubuntu/CentOS),通过 Web 服务器(Apache 或 Nginx)配置不同的“虚拟主机”来区分多个网站。
示例:Nginx 配置两个 WordPress 站点
-
准备两个域名或子域名
site1.comsite2.com或blog.yoursite.com
-
为每个网站创建独立目录
/var/www/site1 /var/www/site2 -
分别下载并安装 WordPress 到两个目录
cd /var/www/site1 && wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz --strip-components=1 # 同样操作 site2 -
创建两个数据库(或同一个数据库不同前缀)
CREATE DATABASE wordpress_site1; CREATE DATABASE wordpress_site2; CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON wordpress_site1.* TO 'wpuser1'@'localhost'; -- 同样配置 site2 -
配置 Nginx 虚拟主机
创建两个配置文件:
# /etc/nginx/sites-available/site1.com server { listen 80; server_name site1.com www.site1.com; root /var/www/site1; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } }# /etc/nginx/sites-available/site2.com server { listen 80; server_name site2.com www.site2.com; root /var/www/site2; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } } -
启用站点
ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx -
分别访问域名进行 WordPress 安装
✅ 方法二:使用子目录部署(单服务器多站点)
如果你只有一个域名,也可以用子目录:
yoursite.com/blog1/yoursite.com/blog2/
配置方法类似,只是 root 目录共享主站,每个子目录对应一个 WordPress 实例。
⚠️ 注意:如果是子目录结构,需确保
.htaccess和 rewrite 规则正确,避免冲突。
✅ 方法三:使用 Docker(高级但灵活)
使用 Docker 可以更清晰地隔离环境:
# docker-compose.yml
version: '3.8'
services:
db-site1:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress1
MYSQL_USER: wp1
MYSQL_PASSWORD: wp1pass
wordpress1:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db-site1
WORDPRESS_DB_USER: wp1
WORDPRESS_DB_PASSWORD: wp1pass
WORDPRESS_DB_NAME: wordpress1
volumes:
- ./site1:/var/www/html
db-site2:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress2
MYSQL_USER: wp2
MYSQL_PASSWORD: wp2pass
wordpress2:
image: wordpress:latest
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db-site2
WORDPRESS_DB_USER: wp2
WORDPRESS_DB_PASSWORD: wp2pass
WORDPRESS_DB_NAME: wordpress2
volumes:
- ./site2:/var/www/html
然后通过反向X_X(Nginx)将不同域名指向不同容器端口。
✅ 方法四:WordPress 多站点网络(Multisite)
如果你想用一个 WordPress 安装管理多个站点,可以启用 WordPress 的“多站点”功能:
- 子域名形式:
site1.yoursite.com,site2.yoursite.com - 子目录形式:
yoursite.com/site1,yoursite.com/site2
缺点:所有站点共享用户、插件、主题系统,管理统一,灵活性较低。
🧩 总结:如何选择?
| 需求 | 推荐方案 |
|---|---|
| 完全独立的两个网站(不同域名) | 虚拟主机(Nginx/Apache) |
| 快速部署、环境隔离 | Docker |
| 共享一个域名下的多个博客 | WordPress Multisite |
| 测试或开发多个项目 | 子目录 + 虚拟主机 |
🔐 安全建议
- 每个站点使用独立数据库和用户。
- 设置正确的文件权限(
www-data用户)。 - 定期更新 WordPress、主题和插件。
- 使用 SSL(Let’s Encrypt 免费证书)。
如果你提供你的服务器环境(如:Ubuntu + Nginx + PHP 还是宝塔面板?),我可以给出更具体的配置步骤。
云知识