结论:Flarum在XAMPP上运行必须启用mod_rewrite、开启fileinfo扩展,并配置虚拟主机及额外端口(如8080);否则将出现403/404或白屏。需修改httpd.conf启用Listen 8080和httpd-vhosts.conf,取消注释rewrite_module,确保.htaccess有效,且PHP禁用函数中移除putenv、proc_open等,最后重启Apache。

直接说结论:XAMPP 默认只监听 80 端口,Flarum 要跑起来必须启用 mod_rewrite、开启 fileinfo 扩展,并手动配置额外端口(如 8080)+ 虚拟主机,否则访问会 403、404 或白屏。
Apache 需要监听新端口并启用虚拟主机
XAMPP 的 httpd.conf 默认不开放多端口,且 httpd-vhosts.conf 是被注释掉的。不改这两处,localhost:8080 根本不会被 Apache 接收。
- 打开
D:\xampp\apache\conf\httpd.conf(路径按你实际安装位置调整),找到Listen 80行,在下方新增一行:Listen 8080 - 继续向下找到
#Include conf/extra/httpd-vhosts.conf,删掉开头的#取消注释 - 然后编辑
D:\xampp\apache\conf\extra\httpd-vhosts.conf,确保顶部有NameVirtualHost *:80和NameVirtualHost *:8080(注意不是##开头) - 添加一个指向 Flarum 目录的
VirtualHost块,比如:<VirtualHost *:8080><br> DocumentRoot "D:/xampp/htdocs/flarum"<br> ServerName localhost<br> <Directory "D:/xampp/htdocs/flarum"><br> AllowOverride All<br> Require all granted<br> </Directory><br></VirtualHost>
PHP 必须启用 fileinfo 扩展且禁用部分函数
Flarum 启动时会检查 fileinfo,缺失直接报错 “The fileinfo extension is not loaded”,同时 putenv、proc_open 这些函数若被禁用,会导致安装页卡死或后台无法加载扩展。
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
- 编辑
D:\xampp\php\php.ini,搜索php_fileinfo.dll,去掉前面的分号:extension=php_fileinfo.dll - 搜索
disable_functions,把其中的putenv、pcntl_signal、proc_open全部删掉(保留其他默认禁用项) - 保存后,**必须重启 Apache**(仅重启 PHP 不生效)
- 验证是否生效:在
htdocs下建个info.php,内容为<?php phpinfo(); ?>,浏览器访问http://localhost/info.php,搜索fileinfo和disable_functions确认状态
Nginx 伪静态规则不适用于 XAMPP
XAMPP 用的是 Apache,不是 Nginx,所以网上流传的那些 location / { try_files $uri $uri/ /index.php?$query_string; } 规则**完全不能直接复制进 XAMPP**。它对应的是 Apache 的 .htaccess 文件,而且依赖 mod_rewrite 是否启用。
- 确认
D:\xampp\apache\conf\httpd.conf中这行已取消注释:LoadModule rewrite_module modules/mod_rewrite.so - 确保 Flarum 根目录下存在
.htaccess文件(官方安装包自带,别删) - 如果访问仍跳转到 Apache 默认页或报 500,检查
.htaccess第一行是否为:RewriteEngine On,且没有语法错误 - 若仍无效,临时把
.htaccess内容替换成最小可用版:RewriteEngine On<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteRule ^ index.php [QSA,L]
访问路径和权限容易被忽略的细节
很多人解压 Flarum 到 htdocs/flarum 后直接访问 http://localhost:8080,结果看到 Apache 欢迎页或 403 —— 这往往是因为没配对 DocumentRoot,或 Windows 下文件夹权限继承异常。
- Flarum **必须通过子目录访问**(如
http://localhost:8080),不能把 Flarum 文件直接扔进htdocs根目录再用http://localhost访问,否则路由和重写全乱 - Windows 下若提示 “You don’t have permission to access this resource”,除了改
httpd-vhosts.conf的Require all granted,还要右键flarum文件夹 → 属性 → 安全 → 编辑 → 给Everyone或Users添加“读取”权限(开发环境可接受) - 安装过程中填写数据库名时,**不要用中文或特殊符号**,纯英文小写最佳,比如
flarum_db;密码也避免@、/等 URL 敏感字符,否则后续后台连接可能失败
最常卡住的地方其实是 fileinfo 没开 + mod_rewrite 没启 + httpd-vhosts.conf 里漏了 NameVirtualHost *:8080。三个点缺一不可,少一个都会让页面静默失败,连错误日志都不吐——因为 Apache 根本没把请求交给 Flarum 处理。

















