同一台服务器部署两个wordpress网站?

是的,可以在同一台服务器上部署两个(甚至多个)WordPress 网站。这在实际运维中非常常见,通常通过以下几种方式实现:


✅ 实现方式一:基于虚拟主机(Virtual Host)或多站点配置(推荐)

1. 使用 Apache 的虚拟主机(Virtual Hosts)

如果你使用的是 Apache 服务器,可以通过配置多个虚拟主机来实现。

示例:两个域名指向同一台服务器

  • 网站1:www.site1.com/var/www/site1
  • 网站2:www.site2.com/var/www/site2

配置步骤:

  1. 创建两个网站目录:

    sudo mkdir -p /var/www/site1
    sudo mkdir -p /var/www/site2
  2. 分别下载 WordPress 到两个目录:

    cd /var/www/site1 && wget https://wordpress.org/latest.tar.gz && tar -xzf latest.tar.gz --strip-components=1
    cd /var/www/site2 && wget https://wordpress.org/latest.tar.gz && tar -xzf latest.tar.gz --strip-components=1
  3. 为每个网站创建独立的数据库:

    CREATE DATABASE wordpress_site1;
    CREATE DATABASE wordpress_site2;
  4. 配置 Apache 虚拟主机(在 /etc/apache2/sites-available/ 下创建两个 .conf 文件):

site1.conf

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1
    <Directory /var/www/site1>
        AllowOverride All
    </Directory>
</VirtualHost>

site2.conf

<VirtualHost *:80>
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2
    <Directory /var/www/site2>
        AllowOverride All
    </Directory>
</VirtualHost>
  1. 启用站点并重启 Apache:

    sudo a2ensite site1.conf
    sudo a2ensite site2.conf
    sudo systemctl reload apache2
  2. 分别访问 site1.comsite2.com,进行 WordPress 安装。


2. 使用 Nginx 的 server 块(如果使用 Nginx)

类似地,Nginx 支持多个 server {} 块。

/etc/nginx/sites-available/site1

server {
    listen 80;
    server_name site1.com www.site1.com;
    root /var/www/site1;
    index index.php index.html;

    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

server {
    listen 80;
    server_name site2.com www.site2.com;
    root /var/www/site2;
    index index.php index.html;

    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;
    }
}

启用并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

✅ 实现方式二:使用子目录(Subdirectory)

如果你想用一个主域名运行多个 WordPress 站点,比如:

  • example.com/site1
  • example.com/site2

你可以将两个 WordPress 安装在子目录中,分别配置数据库和 wp-config.php,但注意 URL 重写规则。

⚠️ 注意:这种方式不如虚拟主机或子域名清晰,管理较复杂。


✅ 实现方式三:使用 WordPress 多站点(Multisite)

如果你希望多个网站共享用户、插件、主题系统,可以使用 WordPress Multisite

  • 一个 WordPress 安装,支持多个子站点。
  • 支持子域名(如 site1.example.com)或子目录模式。
  • 所有站点共享数据库表前缀(但独立内容)。

适合运营多个相关站点(如学校、企业部门、博客网络)。

配置方法:

  1. wp-config.php 中添加:
    define('WP_ALLOW_MULTISITE', true);
  2. 登录后台,进入“工具” → “网络配置”,按提示操作。

🔐 安全与维护建议

  1. 每个网站使用独立数据库,避免数据混淆。
  2. 独立的 wp-config.php 文件,防止配置泄露。
  3. 定期更新 WordPress、主题和插件
  4. 使用防火墙、SSL(Let’s Encrypt) 保护每个站点。
  5. 备份策略:为每个网站设置独立备份。

✅ 总结

方式 适用场景 优点 缺点
多虚拟主机(Apache/Nginx) 不同域名 独立性强,易于管理 配置稍复杂
子目录部署 同一域名下多个站点 结构统一 SEO 和权限管理较复杂
WordPress Multisite 多个关联站点 共享用户、统一管理 插件兼容性问题,迁移复杂

推荐方案
如果你有两个独立的网站(如公司官网 + 博客),建议使用 虚拟主机 + 独立 WordPress 安装,简单、安全、灵活。


需要我帮你写一个完整的 Nginx/Apache 配置示例或自动化脚本吗?