laravel 6 要求 php ≥ 7.2 且必须启用 ctype、mbstring、openssl、tokenizer、xml、json、curl、zip、fileinfo 这 9 个扩展;macos 上最常漏掉的是 fileinfo 和 zip,尤其用 homebrew 安装 php 后默认不启 fileinfo。

直接说结论:Laravel 6 要求 PHP ≥ 7.2 且必须启用 ctype、mbstring、openssl、tokenizer、xml、json、curl、zip、fileinfo 这 9 个扩展;macOS 上最常漏掉的是 fileinfo 和 zip,尤其用 Homebrew 安装 PHP 后默认不启 fileinfo。
确认 CLI 使用的 PHP 版本和配置路径
别信 phpinfo() 页面或宝塔面板显示——Laravel 6 的 composer create-project 和后续 php artisan 命令全走 CLI 模式,必须验证终端里实际加载的 PHP:
- 运行
php -v,输出应为PHP 7.2.x到PHP 7.4.x(Laravel 6 不支持 PHP 8+) - 运行
php --ini,记下Loaded Configuration File路径,例如/opt/homebrew/etc/php/7.4/php.ini - 运行
php -m | grep -E "(fileinfo|zip|mbstring|xml)",缺任何一项都得补
Homebrew 安装的 PHP 如何启用 fileinfo 和 zip
Homebrew 默认安装 PHP 时不会自动启用 fileinfo 和 zip 扩展,它们虽已编译进系统,但 php.ini 里被注释了:
- 用编辑器打开
php --ini显示的配置文件 - 搜索
;extension=fileinfo→ 改成extension=fileinfo - 搜索
;extension=zip→ 改成extension=zip - 保存后重启终端(不是重启 Apache/Nginx,CLI 不读它)
- 再跑一次
php -m | grep -E "fileinfo|zip",确认有输出
Mac 上常见“已装却报缺”的坑
你可能已经执行过 brew install php@7.4,但依然报错,原因往往是:
-
which php返回/usr/bin/php—— 这是系统自带的 PHP(通常 7.3 或更旧),且不含fileinfo;必须执行brew link php@7.4 --force并把/opt/homebrew/bin(Apple Silicon)或/usr/local/bin(Intel)加到$PATH开头 - 改了
php.ini却没改对位置:Homebrew 多版本 PHP 的配置文件分散在/opt/homebrew/etc/php/7.4/下,不是全局/etc/php.ini -
fileinfo在某些老版 Homebrew PHP 中需手动编译:若php -m仍无fileinfo,运行brew reinstall php@7.4 --build-from-source
最后提醒一句:Laravel 6 是 2019 年发布的,官方早已停止支持;如果只是想跑旧项目,务必锁死 PHP 版本(如 brew install php@7.4),别让它被自动升级到 8.x —— 那会直接让 artisan 启动就报 ParseError。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











