一台服务器上搭建多个WordPress网站?

是的,完全可以在一台服务器上搭建多个 WordPress 网站。这是非常常见的做法,尤其适用于个人开发者、中小企业或托管多个客户网站的场景。以下是实现方式和注意事项:


✅ 实现方式

方法一:使用虚拟主机(Virtual Hosts,适用于 Apache)

  1. 安装 LAMP 或 LEMP 环境

    • LAMP:Linux + Apache + MySQL + PHP
    • LEMP:Linux + Nginx + MySQL + PHP
  2. 为每个网站创建独立的目录

    /var/www/site1.com/public_html
    /var/www/site2.com/public_html
  3. 为每个网站配置虚拟主机(Apache)
    创建配置文件:

    sudo nano /etc/apache2/sites-available/site1.com.conf

    内容示例:

    <VirtualHost *:80>
       ServerName site1.com
       ServerAlias www.site1.com
       DocumentRoot /var/www/site1.com/public_html
       <Directory /var/www/site1.com/public_html>
           AllowOverride All
       </Directory>
       ErrorLog ${APACHE_LOG_DIR}/site1_error.log
       CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
    </VirtualHost>

    启用站点:

    sudo a2ensite site1.com.conf
    sudo systemctl reload apache2
  4. 为每个网站创建独立的数据库

    CREATE DATABASE wp_site1;
    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
    FLUSH PRIVILEGES;
  5. 分别安装 WordPress

    • 下载 WordPress 到各自目录
    • 配置 wp-config.php 使用对应的数据库

方法二:使用 Nginx 虚拟主机(推荐用于高性能)

  1. 配置 Nginx 服务器块(Server Blocks)

    server {
       listen 80;
       server_name site1.com www.site1.com;
       root /var/www/site1.com/public_html;
       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/site1.com,然后启用。

  2. 重启 Nginx

    sudo nginx -t
    sudo systemctl reload nginx
  3. 其他步骤同 Apache(独立目录、数据库、安装 WordPress)


方法三:使用 Docker(推荐用于隔离和管理)

每个 WordPress 站点运行在独立的容器中,使用 Docker Compose 管理。

示例 docker-compose.yml

version: '3.8'
services:
  db-site1:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wp_site1
      MYSQL_USER: user1
      MYSQL_PASSWORD: pass1
    volumes:
      - db1_data:/var/lib/mysql

  wordpress-site1:
    image: wordpress:php8.2-apache
    depends_on:
      - db-site1
    environment:
      WORDPRESS_DB_HOST: db-site1:3306
      WORDPRESS_DB_USER: user1
      WORDPRESS_DB_PASSWORD: pass1
      WORDPRESS_DB_NAME: wp_site1
    ports:
      - "8081:80"
    volumes:
      - site1_data:/var/www/html

volumes:
  db1_data:
  site1_data:

优点:

  • 完全隔离
  • 易于备份、迁移、扩展
  • 可为每个站点使用不同 PHP 版本

✅ 注意事项

项目 建议
数据库 每个网站使用独立数据库,避免冲突
文件目录 分开存放,便于管理
安全性 每个站点独立权限,避免跨站攻击
PHP 版本 可统一,也可用 PHP-FPM 配合不同版本
SSL 证书 使用 Let’s Encrypt 为每个域名配置 HTTPS
资源监控 多站点可能消耗较多内存/CPU,需监控资源使用

✅ 推荐工具

  • 宝塔面板 / cPanel / Webmin:可视化管理多个网站(适合新手)
  • Let’s Encrypt:免费 SSL 证书
  • WP CLI:命令行快速安装 WordPress
    wp core download --path=/var/www/site1.com/public_html
    wp config create --dbname=wp_site1 --dbuser=user1 --dbpass=pass1 --path=/var/www/site1.com/public_html
    wp core install --url=site1.com --title="Site1" --admin_user=admin --admin_password=password --admin_email=admin@site1.com --path=/var/www/site1.com/public_html

总结

一台服务器可以轻松运行多个 WordPress 网站,关键在于:

  • 合理规划目录和数据库
  • 正确配置 Web 服务器(Apache/Nginx)
  • 保证安全与性能隔离
  • 推荐使用 Docker 或控制面板简化管理

如果你提供服务器环境(如 Ubuntu + Apache),我可以给出具体配置步骤。

未经允许不得转载:云计算HECS » 一台服务器上搭建多个WordPress网站?