在一个服务器上部署两个 WordPress 站点是完全可行的,常见的做法有以下几种方式:
✅ 一、使用不同的域名或子目录部署两个 WordPress
方法1:使用不同域名(如 example1.com 和 example2.com)
步骤如下:
-
配置虚拟主机(适用于 Apache 或 Nginx)
- 配置两个不同的虚拟主机块,绑定不同的域名。
- 每个虚拟主机指向不同的 WordPress 安装目录。
Apache 示例:
<VirtualHost *:80> ServerName example1.com DocumentRoot /var/www/wordpress1 <Directory /var/www/wordpress1> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerName example2.com DocumentRoot /var/www/wordpress2 <Directory /var/www/wordpress2> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>Nginx 示例:
server { listen 80; server_name example1.com; root /var/www/wordpress1; 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/php-fpm.sock; } } server { listen 80; server_name example2.com; root /var/www/wordpress2; 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/php-fpm.sock; } } -
分别安装两个 WordPress
- 下载 WordPress 解压到
/var/www/wordpress1和/var/www/wordpress2 - 创建两个独立的数据库,并在各自的
wp-config.php中配置对应的数据库信息。
- 下载 WordPress 解压到
-
重启 Web 服务
sudo systemctl restart apache2 # 或者 sudo systemctl restart nginx
方法2:使用一个域名下的子目录(如 example.com/site1 和 example.com/site2)
这种方式适合共享主域名的情况。
步骤如下:
-
将两个 WordPress 分别放在:
/var/www/html/site1 /var/www/html/site2 -
配置
.htaccess或 Nginx 规则支持子目录访问(WordPress 默认支持)。 -
在安装时确保正确设置站点地址和首页地址。
✅ 二、使用 Docker 部署多个 WordPress 实例(高级)
你也可以用 Docker Compose 同时运行多个 WordPress 容器,每个容器使用不同的端口、数据库和挂载目录。
version: '3'
services:
wordpress1:
image: wordpress
ports:
- "8001:80"
environment:
WORDPRESS_DB_NAME: wordpress1
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: pass1
volumes:
- ./wordpress1:/var/www/html
wordpress2:
image: wordpress
ports:
- "8002:80"
environment:
WORDPRESS_DB_NAME: wordpress2
WORDPRESS_DB_USER: user2
WORDPRESS_DB_PASSWORD: pass2
volumes:
- ./wordpress2:/var/www/html
mysql1:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpass1
MYSQL_DATABASE: wordpress1
MYSQL_USER: user1
MYSQL_PASSWORD: pass1
volumes:
- ./mysql1:/var/lib/mysql
mysql2:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpass2
MYSQL_DATABASE: wordpress2
MYSQL_USER: user2
MYSQL_PASSWORD: pass2
volumes:
- ./mysql2:/var/lib/mysql
然后通过 http://localhost:8001 和 http://localhost:8002 访问两个网站。
📝 注意事项:
- 每个 WordPress 应该使用独立的数据库,避免冲突。
- 如果使用相同的 PHP-FPM,注意区分
php.ini设置或资源限制。 - 若需绑定正式域名,请配置 SSL 证书(可以使用 Let’s Encrypt)。
- 建议为每个站点配置独立的用户权限和日志路径,便于维护。
❓常见问题解答:
Q1:能否共用同一个数据库?
不推荐。容易造成表名冲突,管理复杂,建议使用独立数据库。
Q2:如何让两个站点共享用户数据?
可以通过插件(如 Multisite User Management)或自定义开发实现跨站登录同步。
如果你告诉我你使用的服务器环境(比如 Ubuntu + Apache 还是 CentOS + Nginx),我可以提供更具体的配置示例。
需要我帮你写完整的配置文件吗?
CLOUD技术博