多个 WordPress 网站共用一台服务器是常见且高效的部署方式。通过合理的配置,可以在同一台服务器上安全、稳定地运行多个独立的 WordPress 站点。以下是详细的配置步骤和建议:
一、选择合适的服务器环境
推荐使用 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Linux + Nginx + MySQL + PHP)架构。
常见组合:
- 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8
- Web 服务器:Nginx(性能更好)或 Apache(配置简单)
- 数据库:MySQL 或 MariaDB
- PHP:PHP 7.4 / 8.0 / 8.1(根据 WordPress 版本要求)
二、基础服务器准备
-
更新系统
sudo apt update && sudo apt upgrade -y -
安装 LEMP/LAMP 环境
以 Ubuntu + Nginx + MySQL + PHP-FPM 为例:
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y -
启动并启用服务
sudo systemctl enable nginx mysql php-fpm sudo systemctl start nginx mysql php-fpm
三、为每个 WordPress 站点创建独立环境
1. 创建网站目录结构
/var/www/
├── site1.com/
│ └── public_html/
├── site2.com/
│ └── public_html/
└── site3.com/
└── public_html/
示例创建命令:
sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html
设置权限:
sudo chown -R www-data:www-data /var/www/site1.com
sudo chmod -R 755 /var/www/site1.com
2. 为每个站点创建独立数据库
进入 MySQL:
sudo mysql -u root -p
创建数据库和用户:
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;
-- 同理创建 site2、site3...
3. 下载并配置 WordPress
下载 WordPress 到对应目录:
cd /var/www/site1.com/public_html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz --strip-components=1
复制配置文件:
sudo cp wp-config-sample.php wp-config.php
编辑 wp-config.php,填入对应的数据库名、用户名、密码。
四、配置 Web 服务器(Nginx 示例)
为每个站点创建独立的 Nginx 配置文件:
示例:/etc/nginx/sites-available/site1.com
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/public_html;
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:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
同理配置 site2.com、site3.com。
测试配置并重启 Nginx:
sudo nginx -t
sudo systemctl reload nginx
⚠️ 注意:确保每个
server_name对应正确的域名,并在 DNS 中解析到服务器 IP。
五、安全与优化建议
1. 使用 HTTPS(推荐 Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com
Certbot 会自动配置 SSL 并定期续期。
2. 隔离 PHP 进程(可选高级配置)
为每个站点配置独立的 PHP-FPM pool,提升安全性和资源控制。
示例:/etc/php/8.1/fpm/pool.d/site1.conf
[site1]
user = site1
group = site1
listen = /run/php/php8.1-fpm-site1.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
php_admin_value[open_basedir] = /var/www/site1.com/:/tmp/
然后修改 Nginx 的 fastcgi_pass 指向该 socket。
3. 安全加固
- 禁用不必要的 PHP 函数(如
exec,shell_exec) - 设置防火墙(UFW)
sudo ufw allow 'Nginx Full' sudo ufw enable - 定期更新系统和 WordPress 插件主题
- 使用强密码和非默认登录路径(可通过插件实现)
4. 资源监控
- 使用
htop、nmon监控 CPU/内存 - 设置日志轮转避免磁盘占满
六、维护建议
- 备份策略:定期备份数据库和网站文件(可用
wp-cli或脚本) - WordPress 多站点(Multisite) vs 多个网站点:
- 如果站点内容相关、管理员相同,可考虑 Multisite;
- 若站点独立、客户不同,建议使用多个独立 WordPress 实例更安全灵活。
总结
| 步骤 | 内容 |
|---|---|
| 1 | 搭建 LEMP/LAMP 环境 |
| 2 | 为每个站点创建独立目录和数据库 |
| 3 | 安装多个 WordPress 实例 |
| 4 | 配置 Nginx/Apache 虚拟主机 |
| 5 | 配置 SSL 和安全策略 |
| 6 | (可选)隔离 PHP 进程 |
✅ 优点:节省成本、便于管理
⚠️ 注意:需合理分配资源,避免一个站点拖垮整个服务器
如有更多需求(如使用 Docker、负载均衡、缓存优化等),可进一步扩展架构。需要我提供自动化部署脚本或 Docker Compose 方案吗?
云小栈