必须修改httpd.conf启用多端口监听和虚拟主机支持,并在httpd-vhosts.conf中为Statamic配置独立VirtualHost,同时确保mod_rewrite启用、AllowOverride All生效且DocumentRoot指向public目录。

能直接用,但必须绕开 XAMPP 默认的 htdocs 单根目录限制,且 Statamic 的重写规则(.htaccess)在多端口场景下容易失效——根本原因不是 Statamic 本身,而是 Apache 虚拟主机配置没对齐权限、路径和模块启用状态。
修改 httpd.conf 启用多端口监听和虚拟主机支持
只改两处,漏掉任一都会导致请求全落到默认站点或 403 错误:
-
Listen 80下新增你要用的端口,比如Listen 8082(避开系统保留端口,别用 80、443、1024 以下) - 找到
#Include conf/extra/httpd-vhosts.conf,删掉开头的#取消注释——这是多站点不生效的最常见原因 - 确认
mod_rewrite已启用:搜索LoadModule rewrite_module,确保该行未被注释
在 httpd-vhosts.conf 中为 Statamic 单独配 <VirtualHost *:8082>
Statamic 依赖干净的 URL 重写(如 /about 而非 /index.php/about),所以 <Directory> 块里必须显式放行重写,并关闭 AllowOverride None:
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
-
DocumentRoot必须是绝对路径,结尾**不能有斜杠**,例如C:/xampp/htdocs/statamic-site -
ServerName写成localhost:8082即可,不用额外配 hosts(除非你打算用域名) -
<Directory "C:/xampp/htdocs/statamic-site">块内必须包含:AllowOverride All(让.htaccess生效)Require all granted(替代旧版Allow from all) - 如果 Statamic 安装在子目录(如
htdocs/statamic-site/public),DocumentRoot就得指向public子目录,否则路由和资源加载会出错
检查 Statamic 的 .htaccess 和 PHP 配置
即使 Apache 配好了,Statamic 仍可能报 500 或白屏,常见卡点:
- 确认
public/.htaccess文件存在且未被意外删除(XAMPP 默认不会覆盖它,但手动移动项目时容易漏) - PHP 版本需 ≥ 8.0(Statamic v4 要求),在 XAMPP 控制面板里点
PHP→Version切换,别只看phpinfo()页面显示的版本 - 如果访问首页正常但点击链接跳转 404,大概率是
AllowOverride All没生效,或mod_rewrite没启用——用httpd -t在命令行验证配置语法,比重启 Apache 更快定位问题
真正麻烦的不是加端口,而是每个 <VirtualHost> 块都得独立校验三件事:路径是否真实存在、AllowOverride 是否放开、mod_rewrite 是否加载。少一个,Statamic 就只能跑在 index.php/xxx 这种丑陋路径上。

















