在同一台服务器上搭建多个WordPress站点有多种方法,以下是几种主流方案:
一、使用虚拟主机控制面板(推荐新手)
cPanel/Plesk/DirectAdmin 等面板可一键部署:
- 每个站点有独立FTP、数据库和域名绑定
- 自动配置SSL证书(Let’s Encrypt)
- 资源隔离和访问统计
二、手动配置方案(更灵活)
方案A:基于子域名(推荐)
example.com → 主站
blog.example.com → 第二个站点
shop.example.com → 第三个站点
Nginx配置示例:
# 主站点
server {
server_name example.com;
root /var/www/example;
# WordPress配置...
}
# 子站点
server {
server_name blog.example.com;
root /var/www/blog;
# WordPress配置...
}
方案B:基于子目录
example.com → 主站
example.com/blog → 第二个站点
需要配置WordPress地址和站点地址不同。
方案C:基于不同端口(临时测试用)
example.com:80 → 站点1
example.com:8080 → 站点2
三、详细步骤(以Ubuntu+Nginx为例)
1. 环境准备
# 安装LNMP
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip
# 为每个站点创建目录
sudo mkdir -p /var/www/site1 /var/www/site2
sudo chown -R www-data:www-data /var/www/
2. 数据库设置
sudo mysql
# 为每个站点创建独立数据库和用户
CREATE DATABASE site1_db;
CREATE USER 'site1_user'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL ON site1_db.* TO 'site1_user'@'localhost';
FLUSH PRIVILEGES;
# 重复以上步骤创建site2_db...
3. Nginx站点配置
# 复制默认配置
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/site1
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/site2
# 编辑site1配置
sudo nano /etc/nginx/sites-available/site1
site1配置内容:
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:/var/run/php/php8.1-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
4. 启用站点
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl reload nginx
5. 安装WordPress
# 下载并解压到每个站点目录
cd /var/www/site1
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz --strip-components=1
sudo rm latest.tar.gz
# 复制配置文件
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php # 修改数据库信息
四、高级方案
1. 使用Docker(推荐生产环境)
# docker-compose.yml 示例
version: '3'
services:
wordpress1:
image: wordpress:latest
container_name: wp-site1
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: site1_db
WORDPRESS_DB_USER: site1_user
WORDPRESS_DB_PASSWORD: password1
wordpress2:
image: wordpress:latest
container_name: wp-site2
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: site2_db
WORDPRESS_DB_USER: site2_user
WORDPRESS_DB_PASSWORD: password2
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root_password
2. 使用Multisite模式(单一安装管理多个站点)
- 适合内容关联的站点群
- 共享插件、主题和用户
- 在wp-config.php中添加:
define('WP_ALLOW_MULTISITE', true);
五、重要注意事项
- 资源分配:监控CPU、内存和磁盘使用
- 安全隔离:每个站点使用独立数据库用户
- 备份策略:分别备份每个站点的文件和数据库
- SSL证书:使用Let’s Encrypt为每个域名配置HTTPS
- 性能优化:考虑使用Redis/Memcached对象缓存
六、推荐工具
- 管理面板:aaPanel(免费中文版)
- 本地开发:Local by Flywheel
- 批量管理:ManageWP或MainWP
选择方案时考虑:
- 新手:使用控制面板
- 开发者:手动配置或Docker
- 企业多站点:WordPress Multisite
- 完全隔离需求:独立安装或容器化
需要更详细的某个步骤说明吗?
CLOUD技术笔记