在一台服务器上搭建多个WordPress站点可以通过以下几种常见方法实现,具体选择取决于你的服务器环境和技术偏好:
方法1:使用虚拟主机(基于域名)
适用环境:Apache/Nginx + PHP + MySQL
原理:通过为每个站点配置独立的域名和文档根目录(或虚拟主机配置)实现隔离。
步骤:
-
准备域名
- 为每个WordPress站点绑定不同的域名(如
site1.com和site2.com),并确保DNS解析到服务器IP。
- 为每个WordPress站点绑定不同的域名(如
-
创建网站目录
mkdir -p /var/www/site1.com/public_html mkdir -p /var/www/site2.com/public_html -
配置虚拟主机
-
Apache:编辑
/etc/apache2/sites-available/下的配置文件:<VirtualHost *:80> ServerName site1.com DocumentRoot /var/www/site1.com/public_html # 其他配置(如日志、权限等) </VirtualHost>启用配置并重载:
sudo a2ensite site1.com.conf sudo systemctl reload apache2 -
Nginx:编辑
/etc/nginx/sites-available/:server { listen 80; server_name site2.com; root /var/www/site2.com/public_html; index index.php; # 其他配置(如PHP处理) }启用配置并重载:
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/ sudo systemctl reload nginx
-
-
安装WordPress
- 分别下载WordPress到各站点的目录:
cd /var/www/site1.com/public_html wget https://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz --strip-components=1 - 为每个站点创建独立的MySQL数据库和用户:
CREATE DATABASE site1_db; CREATE USER 'site1_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON site1_db.* TO 'site1_user'@'localhost';
- 分别下载WordPress到各站点的目录:
-
完成安装
- 访问
http://site1.com和http://site2.com按向导完成安装。
- 访问
方法2:使用子目录(单域名多站点)
适用场景:主域名下通过子目录区分站点(如 example.com/site1 和 example.com/site2)。
步骤:
- 在主站点的根目录(如
/var/www/html)下创建子目录:mkdir /var/www/html/site1 mkdir /var/www/html/site2 - 将WordPress文件分别解压到子目录。
- 配置主站点的Web服务器(Apache/Nginx)以正确处理子目录的PHP请求。
方法3:使用Docker容器
适用场景:需要环境隔离或快速部署。
# 为每个WordPress站点创建独立的容器
docker run --name wordpress1 -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=user1 -e WORDPRESS_DB_PASSWORD=pass1 -p 8080:80 -d wordpress
docker run --name wordpress2 -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=user2 -e WORDPRESS_DB_PASSWORD=pass2 -p 8081:80 -d wordpress
通过不同端口(如8080、8081)或反向X_X(Nginx)绑定域名。
方法4:使用多站点模式(WordPress Multisite)
适用场景:管理多个关联站点(如子域名或子目录)。
- 在
wp-config.php中添加:define('WP_ALLOW_MULTISITE', true); - 通过 工具 > 配置网络 按向导启用多站点功能。
注意事项
- 资源分配:确保服务器有足够的CPU、内存和数据库连接数。
- 备份与安全:每个站点独立备份数据库和文件,使用不同数据库用户以增强安全。
- HTTPS:为所有域名配置SSL证书(如Let’s Encrypt)。
- 缓存优化:若流量大,可为每个站点配置独立的缓存插件或对象缓存(如Redis)。
根据需求选择最适合的方案。对于初学者,虚拟主机是最直观的方式;若追求隔离性,Docker更优。
云服务器