是的,可以在一台服务器上创建多个 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和用户wpuser1http://site2.com→ 使用wordpress2和wpuser2
每个站点独立运行,互不干扰。
✅ 方法二:使用子目录运行多个 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→ 第一个 WordPresshttp://localhost:8081→ 第二个 WordPress
🔐 安全建议
- 为每个站点使用独立数据库和用户
- 定期更新 WordPress 核心、主题和插件
- 使用防火墙(如 UFW)和 SSL(Let’s Encrypt)
- 备份数据库和文件
总结
| 方法 | 优点 | 缺点 |
|---|---|---|
| 虚拟主机(Apache/Nginx) | 简单、高效、适合生产 | 需要基础服务器管理 |
| 子目录 | 方便测试 | 易冲突,管理复杂 |
| Docker | 隔离好、可扩展 | 学习成本略高 |
如果你告诉我你使用的服务器环境(如 Ubuntu + Apache 还是 CentOS + Nginx),我可以提供更具体的配置脚本。
需要我帮你写一个自动化脚本一键部署多个 WordPress 吗?
CLOUD技术博