Webasyst 在 XAMPP 中需配置独立端口(如 8081)、启用 httpd-vhosts.conf 和 rewrite 模块,DocumentRoot 必须指向 public 子目录,AllowOverride All 不可少,并检查全局 Directory 权限、文件夹安全设置及防火墙放行。

XAMPP 默认只监听 80 端口,Webasyst 若需独立运行(尤其配合多环境、本地调试或避免与 WordPress 冲突),必须显式配置额外端口,且不能只改 Listen —— 虚拟主机、目录权限、Apache 模块三者缺一不可。
修改 httpd.conf 添加监听端口并启用虚拟主机支持
不改这个,httpd-vhosts.conf 文件压根不会被加载。打开 D:\xampp\apache\conf\httpd.conf(Windows)或 /opt/lampp/etc/httpd.conf(Linux),确认两处关键配置已启用:
-
Include conf/extra/httpd-vhosts.conf这行前面不能有#(即必须取消注释) - 搜索
Listen 80,在其下方新增一行,例如:Listen 8081(Webasyst 建议避开 8080/8082 等常用端口,防止与前端 dev server 冲突) - 顺手检查
LoadModule rewrite_module modules/mod_rewrite.so是否已启用(Webasyst 依赖 URL 重写)
在 httpd-vhosts.conf 中为 Webasyst 单独定义 <VirtualHost>
Webasyst 对 DocumentRoot 路径敏感,必须指向其 public 子目录(不是项目根目录),否则会报 403 或白屏。示例配置如下:
<VirtualHost *:8081>
DocumentRoot "D:/xampp/htdocs/webasyst/public"
ServerName localhost
<Directory "D:/xampp/htdocs/webasyst/public">
AllowOverride All
Require all granted
</Directory>
</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
-
AllowOverride All是必须的,否则 Webasyst 的.htaccess无法生效,路由全部 404 - 路径中不能漏掉
/public—— Webasyst 从 6.x 开始强制入口隔离,直接指向根目录会暴露敏感文件 - 如果同时跑多个 Webasyst 实例(如测试版/正式版),每个
<VirtualHost>必须用不同端口,且DocumentRoot和<Directory>路径要一一对应
解决常见 403 Forbidden 错误的三个实际检查点
配完重启 Apache 仍 403?大概率卡在这三处:
-
httpd.conf中全局<Directory ""D:/xampp/htdocs">段落里,Require all denied没注释掉(XAMPP 新版本默认是 deny,老教程常忽略这点) - Windows 下文件夹权限:右键
webasyst文件夹 → 属性 → 安全 → 编辑 → 给Everyone或IUSR添加「读取和执行」权限(Linux 下则需chmod -R 755 webasyst) - Webasyst 的
public/.htaccess文件是否被意外删除或损坏 —— 可从官方 GitHub 仓库重新下载一份覆盖
访问前务必关闭 Windows 防火墙临时规则或放行端口
即使 Apache 启动成功、配置无误,Windows 防火墙默认会拦截非 80/443 的入站连接。执行以下任一操作:
- 控制面板 → Windows Defender 防火墙 → 允许应用通过防火墙 → 勾选
Apache HTTP Server并确保「专用」和「公用」都打勾 - 命令行快速放行:
netsh advfirewall firewall add rule name="XAMPP Webasyst 8081" dir=in action=allow protocol=TCP localport=8081 - Linux 用户注意:
sudo ufw allow 8081(若启用 ufw)或检查iptables规则
端口冲突比想象中更隐蔽——比如 Skype 旧版默认劫持 80/443,VS Code 的 Live Server 插件可能占着 5500,Chrome 扩展有时也会监听随机端口。启动前用 netstat -ano | findstr :8081(Windows)或 lsof -i :8081(Linux/macOS)确认端口空闲。

















