Laravel项目不能直接靠phpenv运行,它仅管理PHP版本;真正运行需PHP解释器、Composer及Web服务器(或php artisan serve)协同工作。
Laravel 项目不能直接靠
运行——
只是 PHP 版本管理工具,它不启动 Web 服务,也不处理依赖或路由。真正让 Laravel 跑起来的是 PHP 解释器 + Composer + Web 服务器(或内置服务器)三者协同。用
的唯一作用,是确保你当前 shell 使用的 PHP 版本符合 Laravel 要求(比如 8.1+),否则
或
命令会失败。
切换 PHP 版本后仍报错“PHP version too low”
常见现象:明明用
装了新版,
却还是显示 7.4;或者
提示
。
必须执行,且需确认终端已重新加载 shell 配置(如
或重启终端)
某些 IDE(如 PHPStorm)或编辑器终端可能缓存旧 PATH,需手动设置 CLI 解释器路径为
运行
和
对比:前者应指向
的 shims 路径,后者应显示
(不是
)
如果用
执行命令(如
),
环境变量不会继承,必须避免
环境下运行
失败
依赖 PHP 内置 Web 服务器,但它对扩展有隐式要求:至少要启用
、
、
、
,否则启动时静默失败或报
。
在
安装 PHP 时,如果跳过扩展编译(比如用
但没指定
等参数),扩展可能缺失
检查方式:
,缺哪个就重装对应版本并加参数(Ubuntu 下更推荐用
装扩展,再用
)
不要用
直接跑
:Laravel 的路由机制依赖
入口和重写逻辑,
默认不支持 PATH_INFO,会导致所有请求 404
+ Nginx/Apache 部署时 502/500 错误频发
根本原因:Web 服务器调用的是系统默认 PHP-FPM(如
),而非
管理的版本,导致扩展不一致、
读取失败或
权限被忽略。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
不要试图把
的 PHP-FPM 二进制直接塞进 Nginx 配置(它没有 systemd service,也缺少 pool 配置)
正确做法:用
确保 CLI 环境正确 → 运行
和
→ 然后改用系统级 PHP-FPM(如
)配合 Nginx,两者版本需严格对齐
若坚持用
管理 FPM,需手动编译带 FPM 的 PHP,并配置
,但极易因 socket 权限、用户组、opcache 配置引发问题,生产环境不建议
是个本地开发辅助工具,它的价值只在「快速验证多版本兼容性」。一旦涉及实际运行,你就得跳出它去管真实依赖链:Composer 加载是否完整、
是否生效、
目录是否可写、Web 服务器是否真指向
——这些环节任何一个断掉,
都救不了。
phpenvphpenvphpenvcomposer installphp artisanphpenvphpenv install 8.2.12php -vcomposer installlaravel/framework requires php >=8.1.0phpenv global 8.2.12source ~/.bashrc~/.phpenv/versions/8.2.12/bin/phpwhich phpphpenv versionphpenv8.2.12systemsudosudo composer installphpenvphpenvphp artisan servephp artisan servembstringopenssljsonxmlClass 'Illuminate\Foundation\Application' not foundphpenvphpenv install --reinstall--with-opensslphp -m | grep -E "(mbstring|openssl|json|xml)"aptphpenv rehashphp -Spublic/index.phppublic/index.phpphp -Sphpenv/usr/bin/php-fpmphpenvAPP_KEYstoragephpenvphpenvcomposer installphp artisan key:generatephp8.2-fpmphpenvwww.confphpenv.envstoragepublic/phpenv