phpEnv 无法安装 Firefly III,因其仅为 Windows 下 PHP 版本管理器,不提供 Web 服务器、数据库、Composer 依赖解析及必需扩展(如 pdo_mysql、bcmath、openssl),而 Firefly III 是基于 Laravel 的完整 Web 应用,需 Apache/Nginx + MySQL/PostgreSQL + Composer 协同运行。
phpEnv 不能直接安装 Firefly III —— 它不是 PHP 扩展或命令行工具,而是一个完整的 Laravel 应用,必须通过 Composer 构建 + Web 服务器(如 Apache/Nginx)+ 数据库(MySQL/PostgreSQL)协同运行。用 phpEnv 只能提供 PHP 运行环境,其余组件得手动配齐。
为什么 phpEnv 装不上 Firefly III?
phpEnv 是 Windows 下的 PHP 版本管理器(类似 macOS 的 phpenv 或 Linux 的 php-version),它只负责切换
和扩展(如
、
、
),不带 Web 服务器、不带数据库、不带 Composer 自动依赖解析。Firefly III 的
会失败,因为:
或
缺失(phpEnv 默认不启用)
、
、
等未开启(Laravel 10+ 强制要求)
没有
或
模块,无法对接 Apache/Nginx
更关键的是:phpEnv 不提供
或 PostgreSQL 服务进程
用 phpEnv 搭 Firefly III 的真实路径
你得把 phpEnv 当成“PHP 引擎供应商”,其他全靠自己补全。最小可行组合是:
用 phpEnv 安装并激活 PHP 8.1+(
→
)
手动编辑
(位置在
),确保以下扩展已取消注释:
、
、
、
、
单独安装 MySQL(推荐 MySQL 8.0.x zip 版,解压后用
初始化,再
启动)
下载 Firefly III 源码(
),进入目录执行:
(注意加
,否则可能因 Windows 下缺少 Python/g++ 编译 node-sass 失败)
复制
为
,改关键项:
、
、
、
、
、
执行
(首次运行必须带
,否则登录页空白)
Apache / Nginx 怎么接上 phpEnv 的 PHP?
phpEnv 本身不集成 Web 服务器,你得选一个并手动关联。最简方案是用 Apache(如 XAMPP 自带的 httpd):
立即学习
“
PHP免费学习笔记(深入)
”;
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
修改
,确保加载了
(不是
!phpEnv 不提供 ts 版 PHP)
添加 FCGI 配置段,指向 phpEnv 的
(路径类似:
)
在虚拟主机里设置
,再用
绑定
后缀
别忘了给 Firefly III 的
目录设为 DocumentRoot,并开启
(让
生效)
如果你跳过这步直接双击
,会报错:
—— 因为内置服务器不读
,扩展不会自动加载。
比 phpEnv 更省事的替代方案
Windows 用户真想快速跑通 Firefly III,建议放弃 phpEnv,改用:
Docker Desktop + docker-compose.yml
:官方有现成配置,一条
就拉起 PHP + Nginx + Postgres + Redis 全栈,连数据库初始化都自动完成
XAMPP + 手动部署
:XAMPP 自带 Apache/MySQL/PHP,只需确认 PHP 版本 ≥8.1、开启必要扩展、按 Firefly III 文档走
流程
WSL2 + Ubuntu + Nginx
:在 Windows 上跑原生 Linux 环境,兼容性最好,Firefly III 官方文档默认以 Ubuntu 为基准
phpEnv 的价值在于多版本 PHP 切换调试,但 Firefly III 对 PHP 版本容忍度低(只支持 8.1–8.3),一旦配错扩展或漏启服务,排查链路太长——容易卡在
却查不到日志源头。
php.exepdo_mysqlopensslmbstringcomposer installext-pdo_pgsqlext-pdo_mysqlext-bcmathext-ctypeext-jsonphp-cgiphp-fpmmysqld.exephpenv install 8.1.28phpenv global 8.1.28php.ini%USERPROFILE%\.phpenv\versions\8.1.28\etc\php.iniextension=php_pdo_mysql.dllextension=php_openssl.dllextension=php_mbstring.dllextension=php_bcmath.dllextension=php_curl.dllmysqld --initializenet start mysqlgit clone https://github.com/firefly-iii/firefly-iii.gitcomposer install --no-dev -o--no-dev.env.example.envDB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=fireflyDB_USERNAME=rootDB_PASSWORD=你的密码php artisan migrate --seed--seedhttpd.confmod_fcgidmod_phpphp-cgi.exeC:/Users/xxx/.phpenv/versions/8.1.28/php-cgi.exeScriptAlias /fcgi-bin/ "C:/Users/xxx/.phpenv/versions/8.1.28/"FcgidWrapper.phppublic/AllowOverride All.htaccessphp -S localhost:8000 -t publicClass 'PDO' not foundphp.inidocker-compose up -dcomposer install500 Internal Server Error