phpEnv 无法运行 Laravel 11——它已停止维护,最高仅支持 PHP 7.4 和 Laravel 7,而 Laravel 11 强制要求 PHP ≥ 8.2 及 mbstring、json 等现代扩展,底层环境彻底不兼容。

phpEnv 不能安装或部署 Laravel 8.4.4 之后的版本,更无法运行 Laravel 11 —— 它不是配置问题,而是根本性不兼容。
phpEnv 最高只支持 Laravel 7 / PHP 7.4
phpEnv 是一个已停止维护的 Windows 本地环境套件(最后更新于 2020 年),内置 PHP 版本固定为 5.6、7.0、7.2、7.4 四档,不提供 PHP 8.0+ 安装选项。而 Laravel 8.4.4 虽然官方最低要求 PHP 7.3,但实际依赖 json、mbstring、ctype 等扩展在 phpEnv 的 CLI 模式下常无法启用(即使界面勾选,php -m 也查不到);Laravel 11 则强制要求 PHP ≥ 8.2,直接被 phpEnv 彻底排除。
常见失败现象:
-
composer create-project laravel/laravel:^11报错:Your requirements could not be resolved - 强行拷贝 Laravel 11 代码后访问,出现
Class 'Illuminate\Foundation\Application' not found -
php artisan key:generate报Call to undefined function str_starts_with()(PHP 8.0+ 新函数)
phpEnv 上跑 Laravel 8.4.4 的实操限制
即使你坚持用 phpEnv 部署 Laravel 8.4.4,也会遇到几个绕不开的硬伤:
立即学习“PHP免费学习笔记(深入)”;
- 必须手动修改
php.ini启用extension=php_mbstring.dll、extension=php_openssl.dll等,且重启 phpEnv 后不一定生效(FPM 和 CLI 扩展不一致是常态) - Nginx 配置需手写
try_files $uri $uri/ /index.php?$query_string;,但 phpEnv 的 vhosts 模板路径藏得深:phpEnv\server\nginx\conf\vhosts\rewrite\www.vueadmin.com.conf,改错文件名或路径就 404 -
php artisan serve在 phpEnv 下基本不可用(绑定127.0.0.1:8000常被占用或端口冲突) - 伪静态规则对子目录无效,
public/.htaccess在 Nginx 下完全不生效,Apache 模式又得切 phpEnv 的 Web 服务类型
为什么别在 phpEnv 上折腾 Laravel 部署
真正卡住你的从来不是“怎么配”,而是底层失配带来的随机失效:
- phpEnv 的
php-fpm进程管理器和 Nginx 的 FastCGI 通信不稳定,大一点的请求(如上传、队列)容易超时或 502 - 所有扩展是否启用,必须分别验证 CLI(
php -v、php -m)和 FPM(phpinfo()页面)两个上下文,缺一不可 - Composer 镜像设置(如
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)只影响 CLI,不影响 phpEnv 内置的 Composer GUI 按钮行为 - 一旦项目含
spatie/laravel-permission或laravel/sanctum这类强依赖现代 PHP 特性的包,composer install就会静默失败,错误日志藏在 phpEnv 控制台滚动条之外
现在还用 phpEnv,等于主动给自己加一层不可控的抽象。Laravel 8.4.4 能跑通只是侥幸;Laravel 11 及以后版本,它连编译都过不去。真要本地开发,laravel/sail 或 WAMP 3.3.0+ 是唯二靠谱选择 —— 其他方案,都是拿时间换报错。



















