在一个服务器上创建多个wordpress?

是的,可以在一台服务器上创建多个 WordPress 网站。这在共享主机资源、节省成本或集中管理多个项目时非常常见。以下是实现这一目标的几种常见方式,以及具体操作步骤(以 Linux 服务器为例,使用 Apache 或 Nginx):


✅ 方法一:通过虚拟主机(Virtual Hosts)运行多个 WordPress 站点(推荐)

前提条件:

  • 一台 Linux 服务器(如 Ubuntu/CentOS)
  • 安装了 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Nginx 替代 Apache)
  • 域名或子域名(可选,也可用不同端口或路径)

步骤 1:准备环境

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Apache、MySQL、PHP(以 Ubuntu 为例)
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

步骤 2:为每个 WordPress 创建独立的数据库

sudo mysql -u root -p

在 MySQL 中执行:

CREATE DATABASE wordpress1;
CREATE DATABASE wordpress2;

CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'strongpassword1';
CREATE USER 'wpuser2'@'localhost' IDENTIFIED BY 'strongpassword2';

GRANT ALL PRIVILEGES ON wordpress1.* TO 'wpuser1'@'localhost';
GRANT ALL PRIVILEGES ON wordpress2.* TO 'wpuser2'@'localhost';

FLUSH PRIVILEGES;
EXIT;

步骤 3:下载并配置多个 WordPress 实例

创建网站目录:

sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com

下载 WordPress:

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz

复制到各自目录:

sudo cp -r /tmp/wordpress/* /var/www/site1.com/
sudo cp -r /tmp/wordpress/* /var/www/site2.com/

设置权限:

sudo chown -R www-data:www-data /var/www/site1.com
sudo chown -R www-data:www-data /var/www/site2.com
sudo chmod -R 755 /var/www

步骤 4:配置虚拟主机(以 Apache 为例)

创建虚拟主机配置文件:

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

sudo nano /etc/apache2/sites-available/site2.com.conf
<VirtualHost *:80>
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com

    <Directory /var/www/site2.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/site2_error.log
    CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>

启用站点并重启 Apache:

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

步骤 5:配置 WordPress

访问:

  • http://site1.com → 进行安装,使用数据库 wordpress1 和用户 wpuser1
  • http://site2.com → 使用 wordpress2wpuser2

每个站点独立运行,互不干扰。


✅ 方法二:使用子目录运行多个 WordPress(不推荐用于生产)

你也可以在同一个域名下使用子目录,如:

  • yoursite.com/blog1/
  • yoursite.com/blog2/

但每个 WordPress 需要独立安装,并注意 .htaccess 和 permalinks 配置,容易冲突。


✅ 方法三:使用 Docker(现代化推荐)

使用 Docker 可以更轻松地隔离多个 WordPress 实例:

# docker-compose.yml
version: '3.8'
services:
  db1:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress1
      MYSQL_USER: wpuser1
      MYSQL_PASSWORD: wp1pass
    volumes:
      - db1_data:/var/lib/mysql

  wordpress1:
    image: wordpress:latest
    depends_on:
      - db1
    environment:
      WORDPRESS_DB_HOST: db1:3306
      WORDPRESS_DB_USER: wpuser1
      WORDPRESS_DB_PASSWORD: wp1pass
      WORDPRESS_DB_NAME: wordpress1
    ports:
      - "8080:80"
    volumes:
      - wp1_data:/var/www/html

  db2:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress2
      MYSQL_USER: wpuser2
      MYSQL_PASSWORD: wp2pass
    volumes:
      - db2_data:/var/lib/mysql

  wordpress2:
    image: wordpress:latest
    depends_on:
      - db2
    environment:
      WORDPRESS_DB_HOST: db2:3306
      WORDPRESS_DB_USER: wpuser2
      WORDPRESS_DB_PASSWORD: wp2pass
      WORDPRESS_DB_NAME: wordpress2
    ports:
      - "8081:80"
    volumes:
      - wp2_data:/var/www/html

volumes:
  db1_data:
  db2_data:
  wp1_data:
  wp2_data:

运行:docker-compose up -d

然后访问:

  • http://localhost:8080 → 第一个 WordPress
  • http://localhost:8081 → 第二个 WordPress

🔐 安全建议

  • 为每个站点使用独立数据库和用户
  • 定期更新 WordPress 核心、主题和插件
  • 使用防火墙(如 UFW)和 SSL(Let’s Encrypt)
  • 备份数据库和文件

总结

方法 优点 缺点
虚拟主机(Apache/Nginx) 简单、高效、适合生产 需要基础服务器管理
子目录 方便测试 易冲突,管理复杂
Docker 隔离好、可扩展 学习成本略高

如果你告诉我你使用的服务器环境(如 Ubuntu + Apache 还是 CentOS + Nginx),我可以提供更具体的配置脚本。

需要我帮你写一个自动化脚本一键部署多个 WordPress 吗?

未经允许不得转载:CLOUD技术博 » 在一个服务器上创建多个wordpress?