在一台服务器上配置多个 WordPress 网站是完全可行的,也是常见的做法。以下是详细的步骤和建议,帮助你在同一台服务器上部署和管理多个独立的 WordPress 站点。
✅ 一、环境准备(以 Linux + Nginx + PHP + MySQL 为例)
1. 安装 LEMP 或 LAMP 环境
- Linux(如 Ubuntu/CentOS)
- Engine (Nginx) 或 Apache
- MySQL/MariaDB
- PHP
# Ubuntu 示例
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
✅ 二、为每个 WordPress 站点创建独立目录
建议将每个站点放在 /var/www/ 下的独立子目录中:
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
✅ 三、下载并配置每个 WordPress
1. 下载 WordPress 到各自目录
cd /var/www/site1.com
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz --strip-components=1
sudo chown -R www-data:www-data /var/www/site1.com
对 site2.com 同样操作。
✅ 四、为每个站点创建独立数据库
CREATE DATABASE wp_site1;
CREATE DATABASE wp_site2;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'another_password';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';
FLUSH PRIVILEGES;
✅ 五、配置 Nginx 虚拟主机(Virtual Hosts)
为每个站点创建一个 Nginx 配置文件:
1. 创建配置文件:/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;
}
}
2. 为 site2.com 创建类似配置:
复制上面内容,修改 server_name 和 root 路径即可。
3. 启用站点
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
✅ 六、域名解析与 SSL(可选但推荐)
1. 域名解析
确保 site1.com 和 site2.com 的 DNS 指向你的服务器 IP。
2. 使用 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。
✅ 七、安全与维护建议
| 项目 | 建议 |
|---|---|
| 文件权限 | chown -R www-data:www-data /var/www/*,避免使用 777 |
| 数据库隔离 | 每个站点使用独立数据库和用户 |
| 定期更新 | 及时更新 WordPress 核心、主题和插件 |
| 备份策略 | 使用工具如 UpdraftPlus 或脚本定期备份数据库和文件 |
| 防火墙 | 使用 ufw 开放 80/443,关闭其他端口 |
| 安全插件 | 推荐安装 Wordfence、iThemes Security 等 |
✅ 八、可选:使用 Docker 部署(更高级)
你也可以使用 Docker Compose 为每个站点创建独立容器,实现更好的隔离性:
# docker-compose.yml for site1
version: '3.8'
services:
db-site1:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wp_site1
MYSQL_USER: user1
MYSQL_PASSWORD: pass1
volumes:
- db-site1-data:/var/lib/mysql
wordpress-site1:
image: wordpress:latest
depends_on:
- db-site1
environment:
WORDPRESS_DB_HOST: db-site1:3306
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: pass1
WORDPRESS_DB_NAME: wp_site1
volumes:
- ./site1-content:/var/www/html/wp-content
ports:
- "8081:80"
多个站点可用不同 compose 文件或一个文件中定义多个服务。
✅ 总结
在同一台服务器上运行多个 WordPress 站点的关键是:
- 独立目录
- 独立数据库
- 独立 Nginx 虚拟主机配置
- 良好的权限和安全设置
只要合理规划资源(CPU、内存、带宽),一台 VPS 完全可以托管多个中小型 WordPress 网站。
如果你提供具体环境(如 Ubuntu 版本、是否已有网站等),我可以给出更定制化的配置脚本。
云服务器