在一台服务器上搭建多个 WordPress 网站是完全可行的,常见的方法包括使用虚拟主机(Virtual Host)或反向(如 Nginx)来为每个站点分配独立的域名或子域名。以下是基于 Linux 服务器(如 Ubuntu/CentOS),使用 LAMP(Linux + Apache + MySQL + PHP)或 LEMP(Nginx 替代 Apache) 架构的详细步骤。
🌐 方法一:使用 Apache + 虚拟主机(推荐初学者)
步骤 1:安装 LAMP 环境
# Ubuntu/Debian
sudo apt update
sudo apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml php-zip
步骤 2:为每个 WordPress 创建独立目录
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
下载 WordPress 并解压到对应目录:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo cp -r wordpress/* /var/www/site1.com/
sudo cp -r 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
步骤 3:创建独立的 MySQL 数据库
sudo mysql -u root -p
CREATE DATABASE wp_site1;
CREATE DATABASE wp_site2;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strongpassword1';
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'strongpassword2';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤 4:配置 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>
同样创建 site2.com.conf,替换域名和路径。
启用站点:
sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf
sudo a2enmod rewrite
sudo systemctl reload apache2
步骤 5:配置域名解析
确保 site1.com 和 site2.com 的 DNS 指向你的服务器 IP。
本地测试时可修改本地电脑的
hosts文件:192.168.1.100 site1.com 192.168.1.100 site2.com
步骤 6:访问并安装 WordPress
打开浏览器访问:
- http://site1.com → 安装第一个 WordPress
- http://site2.com → 安装第二个 WordPress
在安装过程中,分别使用对应的数据库(wp_site1, wp_site2)和数据库用户。
🌐 方法二:使用 Nginx + 反向(高性能推荐)
步骤 1:安装 LEMP 环境
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
步骤 2:创建网站目录(同上)
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
# 复制 WordPress 文件并设置权限
步骤 3:创建 Nginx 配置文件
sudo nano /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:/var/run/php/php8.1-fpm.sock;
}
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
后续步骤同 Apache(创建数据库、安装 WordPress)。
✅ 建议与最佳实践
-
独立数据库:每个 WordPress 使用独立数据库,避免冲突。
-
独立配置文件:
wp-config.php中配置不同的数据库信息。 -
SSL 加密:使用 Let’s Encrypt 为每个站点添加 HTTPS:
sudo apt install certbot python3-certbot-nginx # 或 apache sudo certbot --nginx -d site1.com -d www.site1.com -
备份策略:定期备份数据库和文件。
-
安全设置:
- 修改 WordPress 目录权限。
- 使用强密码。
- 安装安全插件(如 Wordfence)。
🔁 其他方式(高级)
- Docker 容器化:使用 Docker 为每个 WordPress 创建独立容器,更加隔离和易于管理。
- 子目录部署:如
yoursite.com/blog1,yoursite.com/blog2,使用 WordPress 多站点(Multisite),但功能受限较多。
✅ 总结:
你可以在一台服务器上轻松运行多个 WordPress 站点,只需:
- 为每个站点分配独立域名或子域名
- 设置独立的网站目录
- 配置独立数据库
- 使用 Apache 虚拟主机 或 Nginx server 块
这样既能节省成本,又能高效管理多个网站。
如需,我可以提供一键部署脚本或 Docker 配置模板。欢迎继续提问!
ECLOUD博客