加油
努力

如何为同一台服务器上的两个WordPress网站设置不同的域名?

在一台服务器上为两个 WordPress 站点配置不同的域名,可以通过以下步骤实现。这里以常见的 NginxApache 作为 Web 服务器为例进行说明。


✅ 前提条件

  1. 你已经有一台服务器(如 VPS、云主机)。
  2. 已安装 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Linux + Nginx + MySQL + PHP)环境。
  3. 两个 WordPress 站点已分别安装在不同的目录中(例如 /var/www/site1/var/www/site2)。
  4. 你拥有两个域名(如 site1.comsite2.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

✅ 后续操作

  1. 更新 WordPress 设置
    登录每个站点的后台 → 设置 → 常规,确保“WordPress 地址”和“站点地址”是正确的域名。

  2. 配置 HTTPS(建议)
    使用 Let’s Encrypt 免费 SSL 证书:

    sudo certbot --nginx -d site1.com -d www.site1.com

    (或 --apache,根据你用的服务器)

  3. 数据库分离
    每个 WordPress 应使用独立的数据库,避免冲突。


总结

步骤 说明
1 两个 WordPress 安装在不同目录
2 两个域名解析到服务器 IP
3 配置 Web 服务器虚拟主机(Nginx/Apache)
4 启用站点并重启服务
5 设置 WordPress 的站点 URL

✅ 这样即可让同一台服务器通过不同域名运行两个完全独立的 WordPress 网站。

如有需要,我也可以提供一键部署脚本或 Docker 方案。

云服务器