奋斗
努力

同一台服务器如何安装两个WordPress网站?

云计算

在同一台服务器上安装两个 WordPress 网站是完全可行的,常见的方法有以下几种。具体选择取决于你的服务器环境(如 Apache、Nginx)、域名配置和需求。以下是详细步骤:


✅ 方法一:使用不同的目录(子目录)部署两个 WordPress

这是最简单的方式,两个网站共用同一个域名,但放在不同目录下。

示例结构:

/var/www/html/
├── wordpress1/      → 第一个网站:yourdomain.com/wordpress1
└── wordpress2/      → 第二个网站:yourdomain.com/wordpress2

步骤:

  1. 上传两个 WordPress 文件到不同目录

    cd /var/www/html
    wget https://wordpress.org/latest.tar.gz
    tar -xzf latest.tar.gz
    mv wordpress wordpress1
    cp -r wordpress1 wordpress2
  2. 创建两个数据库

    CREATE DATABASE wp_site1;
    CREATE DATABASE wp_site2;
    CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'password1';
    CREATE USER 'wpuser2'@'localhost' IDENTIFIED BY 'password2';
    GRANT ALL PRIVILEGES ON wp_site1.* TO 'wpuser1'@'localhost';
    GRANT ALL PRIVILEGES ON wp_site2.* TO 'wpuser2'@'localhost';
    FLUSH PRIVILEGES;
  3. 分别配置 wp-config.php

    • 进入 wordpress1 和 wordpress2 目录,修改各自的 wp-config.php,设置不同的数据库名、用户名和密码。
  4. 访问并安装

    • 打开浏览器访问:
      • http://yourdomain.com/wordpress1
      • http://yourdomain.com/wordpress2
    • 按照向导完成安装。

⚠️ 缺点:URL 不够美观(带路径),适合测试或内部使用。


✅ 方法二:使用不同的域名(虚拟主机)运行两个网站点

推荐方式!每个 WordPress 站点拥有自己的域名(例如 site1.com 和 site2.com),看起来完全独立。

示例:

  • site1.com → /var/www/site1
  • site2.com → /var/www/site2

步骤(以 Nginx 为例):

  1. 准备目录

    mkdir -p /var/www/site1 /var/www/site2
  2. 下载并解压 WordPress 到各自目录

    cd /tmp && wget https://wordpress.org/latest.tar.gz
    tar -xzf latest.tar.gz
    cp -r wordpress/* /var/www/site1/
    cp -r wordpress/* /var/www/site2/
    chown -R www-data:www-data /var/www/site1 /var/www/site2
  3. 为每个站点创建独立数据库
    (同上,创建 db_site1, db_site2)

  4. 配置 Nginx 虚拟主机

    创建两个配置文件:

    # /etc/nginx/sites-available/site1.com
    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/php8.1-fpm.sock;
       }
    }
    # /etc/nginx/sites-available/site2.com
    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/php8.1-fpm.sock;
       }
    }
  5. 启用站点

    ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
    ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
    nginx -t && systemctl reload nginx
  6. DNS 设置
    将 site1.com 和 site2.com 的 A 记录指向你的服务器 IP。

  7. 访问安装

    • 打开 http://site1.com 和 http://site2.com 分别进行 WordPress 安装。

✅ 优点:两个网站完全独立,SEO 友好,管理清晰。


✅ 方法三:使用子域名(类似方法二)

比如:

  • blog.yoursite.com
  • shop.yoursite.com

操作方式与「方法二」几乎相同,只需在 Nginx 中配置 server_name blog.yoursite.com;,并在 DNS 添加子域名解析即可。


🔐 安全建议

  • 为每个 WordPress 使用独立数据库和数据库用户。
  • 设置正确的文件权限:
    chown -R www-data:www-data /var/www/your-site
    find /var/www/your-site -type d -exec chmod 755 {} ;
    find /var/www/your-site -type f -exec chmod 644 {} ;
  • 启用 HTTPS(使用 Let’s Encrypt 免费证书)。

🧩 补充:使用 Docker(高级推荐)

你也可以使用 Docker 分别运行两个 WordPress 容器,更加隔离和便于管理:

# docker-compose.yml
version: '3.8'
services:
  db1:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wp1
      MYSQL_USER: wp1user
      MYSQL_PASSWORD: wp1pass

  wordpress1:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db1
      WORDPRESS_DB_USER: wp1user
      WORDPRESS_DB_PASSWORD: wp1pass
      WORDPRESS_DB_NAME: wp1

  db2:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wp2
      MYSQL_USER: wp2user
      MYSQL_PASSWORD: wp2pass

  wordpress2:
    image: wordpress:latest
    ports:
      - "8081:80"
    environment:
      WORDPRESS_DB_HOST: db2
      WORDPRESS_DB_USER: wp2user
      WORDPRESS_DB_PASSWORD: wp2pass
      WORDPRESS_DB_NAME: wp2

然后通过反向X_X(如 Nginx)将不同域名指向对应容器端口。


总结

方法 适用场景 是否推荐
不同目录 测试、临时用途 ⚠️ 一般
不同域名 生产环境、正式网站 ✅ 强烈推荐
子域名 多功能站点(博客、商城等) ✅ 推荐
Docker 高级用户、开发/运维 ✅ 推荐

如果你提供具体的服务器环境(如 Ubuntu + Nginx/Apache + PHP 版本),我可以给出更精确的配置示例。

未经允许不得转载:云服务器 » 同一台服务器如何安装两个WordPress网站?