一台服务器部署多个wordpress项目?

在一台服务器上部署多个 WordPress 项目是完全可行的,常见的做法有以下几种方式:


✅ 一、使用虚拟主机配置(推荐)

如果你使用的是 Apache 或 Nginx 这类 Web 服务器,可以通过配置虚拟主机(Virtual Host)来实现多个 WordPress 站点运行在同一个服务器上。

1. Apache 示例

# /etc/apache2/sites-available/site1.conf
<VirtualHost *:80>
    ServerAdmin admin@site1.com
    DocumentRoot /var/www/site1
    ServerName site1.com
    ServerAlias www.site1.com
    <Directory /var/www/site1/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# /etc/apache2/sites-available/site2.conf
<VirtualHost *:80>
    ServerAdmin admin@site2.com
    DocumentRoot /var/www/site2
    ServerName site2.com
    ServerAlias www.site2.com
    <Directory /var/www/site2/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

然后启用站点并重启 Apache:

sudo a2ensite site1
sudo a2ensite site2
sudo systemctl restart apache2

2. Nginx 示例

# /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:/run/php/php-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:/run/php/php-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 restart nginx

✅ 二、使用子目录安装多个 WordPress

你也可以将多个 WordPress 安装在同一个域名下的不同子目录中,例如:

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

这种方式适用于想共用一个域名的情况,但需要确保每个 WordPress 的 wp-config.php 中数据库名、表前缀等配置不冲突。


✅ 三、使用多站点网络(WordPress Multisite)

如果你想管理多个网站但共享用户系统或插件,可以使用 WordPress 自带的 Multisite 功能(多站点网络),支持两种模式:

  • 子域名模式:如 site1.example.com, site2.example.com
  • 子目录模式:如 example.com/site1, example.com/site2

开启方法简要如下:

  1. wp-config.php 中添加:
    define('WP_ALLOW_MULTISITE', true);
  2. 登录后台 → 工具 → 配置网络
  3. 按照提示修改配置文件并创建网络

✅ 四、使用 Docker 部署多个 WordPress 容器(高级)

你可以使用 Docker Compose 启动多个 WordPress 容器,每个容器对应一个网站点,端口映射不同即可。

示例 docker-compose.yml 片段:

version: '3'
services:
  wordpress1:
    image: wordpress
    ports:
      - "8001:80"
    environment:
      WORDPRESS_DB_NAME: wp1
      WORDPRESS_DB_USER: user1
      WORDPRESS_DB_PASSWORD: pass1
    volumes:
      - ./wp1:/var/www/html

  wordpress2:
    image: wordpress
    ports:
      - "8002:80"
    environment:
      WORDPRESS_DB_NAME: wp2
      WORDPRESS_DB_USER: user2
      WORDPRESS_DB_PASSWORD: pass2
    volumes:
      - ./wp2:/var/www/html

访问地址:

  • http://localhost:8001
  • http://localhost:8002

📝 小贴士

  • 每个 WordPress 项目建议使用不同的数据库和表前缀,避免冲突。
  • 如果使用域名访问,请确保 DNS 解析指向服务器 IP。
  • 可以结合 Let’s Encrypt 配置 HTTPS。
  • 使用防火墙限制不必要的端口开放。

如果你告诉我你的服务器环境(比如是 Apache/Nginx?Linux 发行版?是否已有 WordPress?),我可以提供更具体的配置帮助。