在一台服务器上为两个 WordPress 站点配置不同的域名,可以通过以下步骤实现。这里以常见的 Nginx 或 Apache 作为 Web 服务器为例进行说明。
✅ 前提条件
- 你已经有一台服务器(如 VPS、云主机)。
- 已安装 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Linux + Nginx + MySQL + PHP)环境。
- 两个 WordPress 站点已分别安装在不同的目录中(例如
/var/www/site1和/var/www/site2)。 - 你拥有两个域名(如
site1.com和site2.com),并已将它们的 DNS A 记录指向你的服务器 IP。
方法一:使用 Nginx 配置虚拟主机(推荐)
步骤 1:准备网站目录
/var/www/
├── site1.com/
│ └── (WordPress 文件)
└── site2.com/
└── (WordPress 文件)
确保每个站点都有独立的数据库和 wp-config.php 文件。
步骤 2:创建 Nginx 虚拟主机配置文件
配置 site1.com
创建配置文件:
sudo nano /etc/nginx/sites-available/site1.com
内容如下:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com;
index index.php index.html index.htm;
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; # 根据你的 PHP 版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
配置 site2.com
sudo nano /etc/nginx/sites-available/site2.com
内容类似,仅修改域名和路径:
server {
listen 80;
server_name site2.com www.site2.com;
root /var/www/site2.com;
index index.php index.html index.htm;
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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
步骤 3:启用站点(创建符号链接)
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
⚠️ 可选:删除默认站点避免冲突:
sudo rm /etc/nginx/sites-enabled/default
步骤 4:测试并重启 Nginx
sudo nginx -t # 测试配置是否正确
sudo systemctl reload nginx
方法二:使用 Apache 配置虚拟主机
步骤 1:准备目录结构(同上)
步骤 2:创建虚拟主机配置
sudo nano /etc/apache2/sites-available/site1.com.conf
内容:
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com
<Directory /var/www/site1.com>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
同样创建 site2.com.conf,修改域名和路径。
步骤 3:启用站点
sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
重启 Apache:
sudo systemctl restart apache2
✅ 后续操作
-
更新 WordPress 设置
登录每个站点的后台 → 设置 → 常规,确保“WordPress 地址”和“站点地址”是正确的域名。 -
配置 HTTPS(建议)
使用 Let’s Encrypt 免费 SSL 证书:sudo certbot --nginx -d site1.com -d www.site1.com(或
--apache,根据你用的服务器) -
数据库分离
每个 WordPress 应使用独立的数据库,避免冲突。
总结
| 步骤 | 说明 |
|---|---|
| 1 | 两个 WordPress 安装在不同目录 |
| 2 | 两个域名解析到服务器 IP |
| 3 | 配置 Web 服务器虚拟主机(Nginx/Apache) |
| 4 | 启用站点并重启服务 |
| 5 | 设置 WordPress 的站点 URL |
✅ 这样即可让同一台服务器通过不同域名运行两个完全独立的 WordPress 网站。
如有需要,我也可以提供一键部署脚本或 Docker 方案。
云小栈