Vanilla Forums 多端口运行需配置 Apache 监听多个端口并为每个端口设置独立 VirtualHost,启用 mod_rewrite 和 .htaccess,确保 DocumentRoot 指向正确目录且 AllowOverride All 开启,避免请求落入 XAMPP dashboard 或 404。

Vanilla Forums 要跑在 XAMPP 上并支持多端口(比如同时用 :8080 和 :8088),核心不是改 Vanilla 本身,而是让 Apache 听得见多个端口、且每个端口能正确路由到对应项目目录——否则访问时会 404 或直接跳到 XAMPP dashboard。
修改 httpd.conf 增加监听端口
Apache 默认只听 Listen 80,必须显式添加你要用的端口,否则请求根本进不来。
- 打开
D:\xampp\apache\conf\httpd.conf(Windows)或/opt/lampp/etc/httpd.conf(macOS/Linux) - 搜索
Listen 80,在它下方新增行,例如:Listen 8080<br>Listen 8088
- 确认没有重复
Listen行,也别漏掉Include etc/extra/httpd-vhosts.conf这行(它必须取消注释,否则虚拟主机配置不生效) - 改完保存,**不要重启 Apache 就直接测试**——先运行
httpd -t(Windows 下去D:\xampp\apache\bin\目录执行)验证语法,避免配置错误导致 Apache 启动失败
为每个端口配独立 <virtualhost></virtualhost>
Vanilla Forums 是 PHP 应用,依赖正确的 DocumentRoot 和 PHP 模块;不同端口不能共用一个 <virtualhost></virtualhost>,否则所有端口都走同一套路径,起不到“多项目隔离”作用。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 编辑
httpd-vhosts.conf(路径同上,在etc/extra/子目录) - 每个端口写一个独立块,例如 Vanilla 论坛放
htdocs/vanilla,就配:<VirtualHost *:8080><br> ServerName localhost<br> DocumentRoot "/opt/lampp/htdocs/vanilla"<br> <Directory "/opt/lampp/htdocs/vanilla"><br> Options Indexes FollowSymLinks<br> AllowOverride All<br> Require local<br> </Directory><br></VirtualHost>
- 注意:
AllowOverride All必须有,Vanilla 依赖.htaccess重写规则处理路由(如/discussions);Require local是安全底线,避免外网直连 - 如果 Vanilla 安装在子目录(如
htdocs/myproject/vanilla),DocumentRoot 必须指向该子目录,不能只写到htdocs
检查 Vanilla 的 config.php 和重写是否启用
即使 Apache 端口和虚拟主机配对了,Vanilla 自身也可能因配置错位返回 500 或白屏。
- 打开
htdocs/vanilla/conf/config.php,确认$Configuration['Garden']['WebRoot']值为空或设为''(非/vanilla),否则 URL 生成会多一层路径 - 确保
mod_rewrite已启用:在httpd.conf中确认LoadModule rewrite_module modules/mod_rewrite.so没被注释 - Vanilla 的
.htaccess文件必须存在于其根目录(即htdocs/vanilla/.htaccess),且内容未被意外删改——它负责把请求转给index.php - 如果访问
http://localhost:8080显示 XAMPP dashboard 而不是 Vanilla,说明请求没落到你配的VirtualHost,大概率是ServerName不匹配或Listen没生效
最容易被忽略的是:macOS Big Sur 及更新系统上,/opt/lampp 目录可能被 SIP 限制写入,编辑 httpd.conf 后保存失败却不报错;务必用 sudo code /opt/lampp/etc/httpd.conf(VS Code)或终端命令确认文件真正写入。端口冲突也常被忽略——比如 Skype、IIS 或 Windows 更新服务占了 :8080,要用 netstat -ano | findstr :8080(Windows)或 lsof -i :8080(macOS)查 PID 并杀掉。Vanilla 的多端口本质是 Apache 的多虚拟主机能力,不是 Vanilla 自带功能,别在它的后台里找“端口设置”。

















