在一台服务器上部署多个WordPress项目是完全可行的,可以通过以下几种方式实现,具体选择取决于你的需求和技术栈:
方法1:使用虚拟主机(基于域名区分)
适用场景:多个独立域名或子域名的WordPress站点,共享同一台服务器的资源(如Nginx/Apache + PHP + MySQL)。
步骤示例(以Nginx为例):
-
准备工作:
- 确保服务器已安装Nginx、PHP-FPM、MySQL/MariaDB。
- 为每个WordPress项目创建独立的数据库(如
wp_site1_db,wp_site2_db)。
-
配置站点目录:
# 为每个站点创建独立的目录 mkdir -p /var/www/site1.com/public_html mkdir -p /var/www/site2.com/public_html -
Nginx虚拟主机配置:
-
为每个域名创建独立的配置文件(如
/etc/nginx/sites-available/site1.com):server { listen 80; server_name site1.com www.site1.com; root /var/www/site1.com/public_html; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } } - 为其他站点重复类似配置,修改
server_name和root路径。
-
-
启用站点并重启Nginx:
ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/ systemctl restart nginx -
安装WordPress:
- 分别将WordPress文件上传到各站点的
public_html目录。 - 通过浏览器访问域名完成安装,配置对应的数据库。
- 分别将WordPress文件上传到各站点的
方法2:使用Docker容器
适用场景:需要环境隔离、快速部署或不同PHP/MySQL版本需求。
步骤示例:
- 安装Docker和Docker Compose。
-
为每个WordPress项目创建独立的
docker-compose.yml文件:# site1/docker-compose.yml version: '3' services: wordpress: image: wordpress:latest ports: - "8000:80" volumes: - ./wp-content:/var/www/html/wp-content environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_NAME: wp_site1_db WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: password db: image: mysql:5.7 volumes: - ./mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wp_site1_db - 启动容器:
cd site1 docker-compose up -d - 其他项目修改端口(如
"8001:80")和数据库名称后重复操作。
方法3:多站点模式(WordPress Multisite)
适用场景:多个站点共享同一套WordPress代码和数据库,适合管理相似站点(如子域名或目录结构)。
步骤:
- 在
wp-config.php中添加:define('WP_ALLOW_MULTISITE', true); - 通过 仪表盘 > 工具 > 网络设置 启用Multisite,按向导配置子域名或子目录。
- 根据提示修改
.htaccess和wp-config.php。
注意事项
-
资源分配:
- 监控服务器资源(CPU、内存),确保多个站点不会拖垮性能。
- 可使用缓存插件(如Redis、WP Super Cache)优化性能。
-
安全性:
- 为每个站点配置独立的Linux用户和文件权限。
- 定期更新WordPress核心、插件和主题。
-
备份:
- 为每个站点单独备份数据库和文件。
总结
- 简单快速:虚拟主机(Nginx/Apache)。
- 隔离灵活:Docker容器。
- 统一管理:WordPress Multisite。
根据你的技术熟悉度和需求选择最适合的方案。
云服务器