在一个服务器上部署两个 WordPress 网站是完全可行的,而且非常常见。以下是详细的步骤和方法,适用于常见的 Linux 服务器环境(如 Ubuntu/CentOS)配合 Apache 或 Nginx + MySQL/MariaDB + PHP(即 LAMP 或 LEMP 环境)。
✅ 前提条件
- 一台 Linux 服务器(例如:Ubuntu 20.04/22.04)
- 已安装 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Nginx 替代 Apache)
- 域名(可选,也可以用不同端口或子目录访问)
方法一:使用虚拟主机(推荐)
通过 虚拟主机(Virtual Hosts),你可以让一个服务器托管多个独立的 WordPress 站点,每个站点有独立的域名、数据库和文件目录。
步骤 1:准备两个网站目录
# 创建第一个网站目录
sudo mkdir -p /var/www/site1.com
sudo chown -R $USER:$USER /var/www/site1.com
sudo chmod -R 755 /var/www/site1.com
# 创建第二个网站目录
sudo mkdir -p /var/www/site2.com
sudo chown -R $USER:$USER /var/www/site2.com
sudo chmod -R 755 /var/www/site2.com
$USER是你的当前用户名,确保你对目录有读写权限。
步骤 2:下载 WordPress 到两个目录
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
复制到两个网站目录:
cp -r wordpress/* /var/www/site1.com/
cp -r wordpress/* /var/www/site2.com/
步骤 3:创建两个独立的数据库
登录 MySQL:
sudo mysql -u root -p
创建数据库和用户:
-- 第一个网站
CREATE DATABASE wp_site1;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strong_password1';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
FLUSH PRIVILEGES;
-- 第二个网站
CREATE DATABASE wp_site2;
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'strong_password2';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤 4:配置 Web 服务器(以 Apache 为例)
创建两个虚拟主机配置文件:
sudo nano /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>
同理创建第二个:
sudo nano /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>
启用站点并重启 Apache:
sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo a2enmod rewrite # 启用伪静态
sudo systemctl restart apache2
如果你使用的是 Nginx,请参考下方“Nginx 配置”部分。
步骤 5:完成 WordPress 安装
在浏览器中分别访问:
http://site1.comhttp://site2.com
WordPress 安装向导会自动启动。为每个站点填写对应的信息:
| 项目 | 站点1 | 站点2 |
|---|---|---|
| 数据库名 | wp_site1 |
wp_site2 |
| 用户名 | user1 |
user2 |
| 密码 | strong_password1 |
strong_password2 |
| 主机 | localhost |
localhost |
其余设置按提示完成即可。
🔁 使用 Nginx 的配置示例(LEMP)
如果你使用 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;
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;
}
}
同样为 site2.com 创建类似文件,然后启用:
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/
sudo nginx -t
sudo systemctl reload nginx
🧩 其他方式(备选)
方式二:子目录部署
- 将第二个 WordPress 放在
/var/www/html/site2 - 配置路径路由(较复杂,SEO 不友好,不推荐用于网站点)
方式三:使用 Docker(高级)
- 每个 WordPress 运行在独立容器中
- 更隔离、更灵活,适合开发和自动化部署
✅ 总结
| 要点 | 说明 |
|---|---|
| 文件分离 | 每个网站独立目录 |
| 数据库分离 | 每个网站独立数据库 |
| 虚拟主机 | Apache/Nginx 配置不同 ServerName |
| 域名绑定 | 可用不同域名或子域名指向不同站点 |
| 安全性 | 推荐为每个站点使用不同的数据库用户 |
✅ 成功后,你就可以在一个服务器上运行两个完全独立的 WordPress 网站,互不干扰。
如果你需要我帮你生成完整的配置文件或脚本,欢迎继续提问!
云服务器