在 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)或 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境中部署多个 WordPress 网站,可以通过 虚拟主机(Virtual Hosts) 的方式实现。每个网站拥有独立的域名、目录和数据库,互不干扰。
下面分别介绍两种环境下的部署方法:
一、通用准备步骤
1. 安装基础环境
确保已安装:
- LNMP:Nginx、MySQL/MariaDB、PHP-FPM
- LAMP:Apache、MySQL/MariaDB、PHP
推荐使用宝塔面板、OneinStack 或手动配置。
2. 准备多个域名
假设你要部署两个网站:
- site1.com
- site2.com
将这些域名解析到你的服务器 IP 地址。
3. 创建独立的网站目录
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
4. 下载 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/
设置权限:
sudo chown -R www-data:www-data /var/www/site1.com
sudo chown -R www-data:www-data /var/www/site2.com
sudo chmod -R 755 /var/www
5. 创建独立数据库
登录 MySQL:
mysql -u root -p
创建数据库和用户:
CREATE DATABASE wp_site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE wp_site2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password1';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'strong_password2';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user_site2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
二、LNMP 环境部署(Nginx)
1. 创建 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版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
站点2:/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 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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
2. 启用站点
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/
3. 测试并重启 Nginx
sudo nginx -t
sudo systemctl reload nginx
三、LAMP 环境部署(Apache)
1. 创建虚拟主机配置文件
站点1:/etc/apache2/sites-available/site1.com.conf
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com
<Directory /var/www/site1.com>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
站点2:/etc/apache2/sites-available/site2.com.conf
<VirtualHost *:80>
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/site2.com
<Directory /var/www/site2.com>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>
2. 启用站点
sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
3. 启用重写模块(WordPress 需要)
sudo a2enmod rewrite
4. 重启 Apache
sudo systemctl restart apache2
四、完成 WordPress 安装
访问以下地址进行图形化安装:
http://site1.com/wp-admin/install.phphttp://site2.com/wp-admin/install.php
在安装过程中填写各自的数据库信息:
| 网站 | 数据库名 | 用户名 | 密码 |
|---|---|---|---|
| site1.com | wp_site1 | user_site1 | strong_password1 |
| site2.com | wp_site2 | user_site2 | strong_password2 |
五、安全建议
- 使用 HTTPS:为每个站点配置 SSL 证书(推荐 Let’s Encrypt + Certbot)。
- 定期备份:数据库和文件都要备份。
- 更新 WordPress:保持核心、主题、插件最新。
- 限制 wp-admin 访问(可选):通过
.htaccess或 Nginx 配置 IP 限制。
六、管理技巧
- 使用宝塔面板、cPanel 等可视化工具更方便管理多站点。
- 可考虑使用 Docker 容器化部署,实现完全隔离。
✅ 总结:
无论是 LNMP 还是 LAMP,部署多个 WordPress 网站的核心是:
- 每个网站独立目录
- 每个网站独立数据库
- 配置 Web 服务器虚拟主机指向对应目录
- 正确设置权限和 PHP 支持
这样即可在同一台服务器上安全运行多个 WordPress 站点。
云小栈