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),它只负责切换 php.exe 和扩展(如 pdo_mysql、openssl、mbstring),不带 Web 服务器、不带数据库、不带 Composer 自动依赖解析。Firefly III 的 composer install 会失败,因为:
-
ext-pdo_pgsql或ext-pdo_mysql缺失(phpEnv 默认不启用) -
ext-bcmath、ext-ctype、ext-json等未开启(Laravel 10+ 强制要求) - 没有
php-cgi或php-fpm模块,无法对接 Apache/Nginx - 更关键的是:phpEnv 不提供
mysqld.exe或 PostgreSQL 服务进程
用 phpEnv 搭 Firefly III 的真实路径
你得把 phpEnv 当成“PHP 引擎供应商”,其他全靠自己补全。最小可行组合是:
- 用 phpEnv 安装并激活 PHP 8.1+(
phpenv install 8.1.28→phpenv global 8.1.28) - 手动编辑
php.ini(位置在%USERPROFILE%\.phpenv\versions\8.1.28\etc\php.ini),确保以下扩展已取消注释:extension=php_pdo_mysql.dll、extension=php_openssl.dll、extension=php_mbstring.dll、extension=php_bcmath.dll、extension=php_curl.dll - 单独安装 MySQL(推荐 MySQL 8.0.x zip 版,解压后用
mysqld --initialize初始化,再net start mysql启动) - 下载 Firefly III 源码(
git clone https://github.com/firefly-iii/firefly-iii.git),进入目录执行:composer install --no-dev -o(注意加--no-dev,否则可能因 Windows 下缺少 Python/g++ 编译 node-sass 失败) - 复制
.env.example为.env,改关键项:DB_CONNECTION=mysql、DB_HOST=127.0.0.1、DB_PORT=3306、DB_DATABASE=firefly、DB_USERNAME=root、DB_PASSWORD=你的密码 - 执行
php artisan migrate --seed(首次运行必须带--seed,否则登录页空白)
Apache / Nginx 怎么接上 phpEnv 的 PHP?
phpEnv 本身不集成 Web 服务器,你得选一个并手动关联。最简方案是用 Apache(如 XAMPP 自带的 httpd):
立即学习“PHP免费学习笔记(深入)”;
- 修改
httpd.conf,确保加载了mod_fcgid(不是mod_php!phpEnv 不提供 ts 版 PHP) - 添加 FCGI 配置段,指向 phpEnv 的
php-cgi.exe(路径类似:C:/Users/xxx/.phpenv/versions/8.1.28/php-cgi.exe) - 在虚拟主机里设置
ScriptAlias /fcgi-bin/ "C:/Users/xxx/.phpenv/versions/8.1.28/",再用FcgidWrapper绑定.php后缀 - 别忘了给 Firefly III 的
public/目录设为 DocumentRoot,并开启AllowOverride All(让.htaccess生效)
如果你跳过这步直接双击 php -S localhost:8000 -t public,会报错:Class 'PDO' not found —— 因为内置服务器不读 php.ini,扩展不会自动加载。
比 phpEnv 更省事的替代方案
Windows 用户真想快速跑通 Firefly III,建议放弃 phpEnv,改用:
-
Docker Desktop + docker-compose.yml:官方有现成配置,一条
docker-compose up -d就拉起 PHP + Nginx + Postgres + Redis 全栈,连数据库初始化都自动完成 -
XAMPP + 手动部署:XAMPP 自带 Apache/MySQL/PHP,只需确认 PHP 版本 ≥8.1、开启必要扩展、按 Firefly III 文档走
composer install流程 - WSL2 + Ubuntu + Nginx:在 Windows 上跑原生 Linux 环境,兼容性最好,Firefly III 官方文档默认以 Ubuntu 为基准
phpEnv 的价值在于多版本 PHP 切换调试,但 Firefly III 对 PHP 版本容忍度低(只支持 8.1–8.3),一旦配错扩展或漏启服务,排查链路太长——容易卡在 500 Internal Server Error 却查不到日志源头。



















