在 Linux 服务器上部署多个 WordPress 站点(多站点或多租户)可以通过以下几种方式实现,每种方式有其适用场景和配置要求。以下是详细的配置步骤和建议:
🧩 部署方案选择
方案一:单个服务器 + 多个独立 WordPress 实例
- 每个 WordPress 独立运行,拥有自己的目录、数据库、域名。
- 推荐用于不同客户或项目。
方案二:WordPress 多站点网络(Multisite)
- 单个 WordPress 安装支持多个子站(子域名或子目录)。
- 共享用户、插件、主题等资源。
本文重点介绍 方案一:多个独立 WordPress 实例,因其更灵活、安全隔离性好。
✅ 基础环境准备
1. 服务器系统
- 推荐:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8/Stream
2. 安装 LAMP 或 LEMP 栈
LEMP(Nginx)性能更好,推荐生产环境使用。
安装 Nginx、PHP、MySQL/MariaDB(以 Ubuntu 为例)
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
确保 PHP 版本 ≥ 7.4(推荐 8.1+)。
🛠️ 配置多个 WordPress 的步骤
步骤 1:创建网站目录结构
为每个站点创建独立目录:
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
设置权限:
sudo chown -R www-data:www-data /var/www/site1.com
sudo chmod -R 755 /var/www/site1.com
步骤 2:下载并解压 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/
步骤 3:创建独立的 MySQL 数据库和用户
登录 MySQL:
sudo mysql -u root
为每个站点创建数据库和用户:
CREATE DATABASE wp_site1;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE wp_site2;
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'another_strong_password';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤 4:配置 wp-config.php 文件
进入每个站点目录,重命名配置文件:
cd /var/www/site1.com
cp wp-config-sample.php wp-config.php
nano wp-config.php
修改数据库信息:
define('DB_NAME', 'wp_site1');
define('DB_USER', 'user_site1');
define('DB_PASSWORD', 'strong_password');
define('DB_HOST', 'localhost');
对 site2 同样操作,使用各自的数据库信息。
可使用 https://api.wordpress.org/secret-key/1.1/salt/ 生成密钥。
步骤 5:配置 Nginx 虚拟主机(Server Blocks)
为每个站点创建独立的 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 index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据实际 PHP 版本调整
}
location ~ /.ht {
deny all;
}
}
同样创建 /etc/nginx/sites-available/site2.com,修改 server_name 和 root。
启用站点:
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/
测试配置并重启 Nginx:
sudo nginx -t
sudo systemctl reload nginx
步骤 6:绑定域名 & DNS 设置
确保你的域名 A 记录指向服务器 IP 地址:
site1.com→your_server_ipsite2.com→your_server_ip
步骤 7:安装 SSL(HTTPS,强烈推荐)
使用 Let’s Encrypt 为每个站点添加 HTTPS:
sudo apt install certbot python3-certbot-nginx
为每个站点申请证书:
sudo certbot --nginx -d site1.com -d www.site1.com
sudo certbot --nginx -d site2.com -d www.site2.com
Certbot 会自动更新 Nginx 配置并启用 HTTPS。
🔐 安全与维护建议
- 定期更新:WordPress、主题、插件保持最新。
- 备份策略:
- 使用
mysqldump备份数据库 - 备份
/var/www/下的文件
- 使用
- 防火墙:
sudo ufw allow 'Nginx Full' sudo ufw enable - 文件权限加固:
wp-config.php权限设为600- 禁止访问敏感文件(如
.htaccess,.env)
- 使用缓存插件:如 WP Super Cache 或 Redis 缓存提升性能。
🔄 自动化脚本建议(可选)
可以编写 Bash 脚本自动化创建新站点流程,包括:
- 创建目录
- 下载 WordPress
- 创建数据库
- 生成 Nginx 配置
- 申请 SSL 证书
✅ 总结:所需配置清单
| 项目 | 配置说明 |
|---|---|
| Web 服务器 | Nginx 或 Apache |
| 数据库 | MySQL / MariaDB(每个站点独立 DB) |
| PHP | PHP-FPM(版本 ≥ 7.4) |
| 目录结构 | 每个站点独立根目录 |
| Nginx 配置 | 每个站点一个 server block |
| 域名解析 | DNS 指向服务器 IP |
| SSL 证书 | Let’s Encrypt(certbot) |
| 安全 | 防火墙、权限控制、定期更新 |
如有需要,我也可以提供一键部署脚本模板或 Ansible 配置方案。欢迎继续提问!
CLOUD云枢