在同一台服务器上搭建多个 WordPress 站点是常见需求,可以通过以下几种方式实现。以下是详细的步骤和推荐方法:
✅ 方法一:使用虚拟主机(Virtual Hosts) + 子目录或子域名
适用于 Apache 或 Nginx 服务器,通过配置不同的虚拟主机来运行多个独立的 WordPress 站点。
步骤概览:
-
准备服务器环境
- 操作系统:Ubuntu / CentOS(推荐)
- Web 服务器:Apache 或 Nginx
- 数据库:MySQL/MariaDB
- PHP 环境(PHP 7.4+)
-
为每个站点创建独立的目录
# 创建两个站点的根目录
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
- 下载并安装 WordPress 到每个目录
cd /var/www/site1.com
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz --strip-components=1
对 site2.com 重复此操作。
- 为每个站点创建独立的数据库
CREATE DATABASE wordpress_site1;
CREATE DATABASE wordpress_site2;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON wordpress_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wordpress_site2.* TO 'user_site2'@'localhost';
FLUSH PRIVILEGES;
- 配置 Web 服务器(以 Nginx 为例)
创建两个配置文件:
/etc/nginx/sites-available/site1.com
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com;
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.com;
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;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
- 完成 WordPress 安装
- 访问
http://site1.com和http://site2.com - 按照向导填写数据库信息(分别使用各自的数据库)
- 完成安装
- 访问
✅ 方法二:使用子目录部署(单服务器多路径)
如果你只有一个域名,但想运行多个 WordPress,可以放在不同子目录中:
example.com/blog1/example.com/blog2/
注意:不推荐用“多站点网络(Multisite)”时随意混用子目录和子域名,需提前规划。
配置示例(Nginx):
server {
server_name example.com;
location /blog1/ {
alias /var/www/blog1/;
index index.php;
try_files $uri $uri/ /blog1/index.php?$args;
}
location /blog2/ {
alias /var/www/blog2/;
index index.php;
try_files $uri $uri/ /blog2/index.php?$args;
}
# 处理 PHP
location ~ ^/(blog1|blog2)/(.+.php)$ {
alias /var/www/$1/$2;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
然后在对应目录安装 WordPress 即可。
✅ 方法三:WordPress 多站点网络(Multisite)
如果你想用一个 WordPress 实例管理多个站点(共享用户、插件等),可以启用 Multisite 功能。
启用步骤:
-
在
wp-config.php中添加:define('WP_ALLOW_MULTISITE', true); -
登录后台 → 工具 → 网络设置 → 选择子域名或子目录模式。
-
按提示添加配置代码到
wp-config.php和.htaccess(Apache)或 Nginx 规则。
⚠️ 注意:
- 多站点适合品牌统一管理多个子站。
- 一旦启用,后期难以关闭。
- 插件和主题对所有站点共享(可单独启用)。
🔐 安全与维护建议
- 每个站点使用独立数据库用户,避免权限扩散。
- 定期更新 WordPress、主题和插件。
- 使用缓存插件(如 WP Super Cache)提升性能。
- 配置 SSL(Let’s Encrypt 免费证书):
sudo certbot --nginx -d site1.com -d www.site1.com - 设置文件权限:
sudo chown -R www-data:www-data /var/www/site1.com sudo find /var/www/site1.com -type d -exec chmod 755 {} ; sudo find /var/www/site1.com -type f -exec chmod 644 {} ;
总结对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 独立虚拟主机 | 完全隔离,安全灵活 | 资源占用略高 | 多个独立客户网站 |
| 子目录部署 | 节省域名 | 管理稍复杂 | 同一主站下多个栏目 |
| WordPress 多站点 | 统一管理,共享用户 | 故障影响大,配置复杂 | 品牌旗下多个子站 |
✅ 推荐:使用独立虚拟主机 + 独立数据库 是最清晰、安全、易维护的方式。
如有具体环境(如 Ubuntu + Nginx + PHP 8.1),我可以提供完整脚本配置。需要的话请告诉我你的服务器环境。
云小栈