Laravel 9 在 PHP 8.1 上可正常运行,但需禁用 opcache.enable_cli=1,否则 artisan 命令卡顿或报错;Class 'Illuminate\Foundation\Application' not found 主因是 autoload.php 路径错误或 CLI/FPM 的 php.ini 扩展不一致,且宝塔默认关闭 fileinfo 须手动启用。
直接上结论:Laravel 9 跑在 PHP 8.1 上没问题,但必须关掉
,否则
命令会卡住或报错,本地开发和部署都会出问题。
PHP 8.1 环境里 Laravel 9 启动就报 Class 'Illuminate\Foundation\Application' not found
这不是代码坏了,是 autoloader 没加载成功。最常见原因有两个:
路径不对 —— 检查
第一行是否仍是
,别手误改成
或漏了
PHP CLI 和 FPM 用的不是同一套配置 —— 运行
和
对比两个
路径,确保
、
、
都在两个文件里启用
如果用了宝塔,注意它默认给 CLI 关了
扩展 —— Laravel 文件上传、Mime 类型检测会直接失败,必须进宝塔 PHP 设置里手动勾选
部署时
报错
错误常出现在服务器上,尤其是内存小或限制严的环境(比如 1G 内存的轻量服务器)。不是依赖写错了,而是 Composer 进程被 OOM Killer 杀了,或者超时了。
先加内存限制:
禁用插件减少开销:
如果还失败,别硬扛 —— 改用
,它不生成优化映射,但足够跑起来;等服务稳定后再补
绝对不要把本地
打包传上去 ——
里有绝对路径,换机器就失效
Nginx 配置完还是 404,或静态资源打不开
根本原因几乎全是 root 指向错了,或者
没生效。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
确认 Nginx 的
是
,不是
—— Laravel 的入口只有
必须加这行:
,缺了它,所有路由和 CSS/JS 都 404
如果用了宝塔,伪静态选“Laravel”后,还得手动检查生成的配置 —— 它有时会漏掉
块里的
,导致 PHP 脚本找不到
和
目录权限必须是
且属组为
(Ubuntu)或
(宝塔),否则日志写不进去、缓存生成失败
最容易被忽略的一点:APP_KEY 必须用
生成,不能抄别人项目里的,也不能手输。哪怕只错一个字符,Session 就全空,密码重置链接 404,加密 Cookie 全失效 —— 这类问题不会报错,只会静默失败。
opcache.enable_cli=1php artisanvendor/autoload.phppublic/index.phprequire __DIR__.'/../vendor/autoload.php';./vendor/...../php --iniphp-fpm -i | grep "Loaded Configuration File"php.iniextension=mbstringextension=opensslextension=pdo_mysqlfileinfocomposer install --no-dev --optimize-autoloaderCOMPOSER_MEMORY_LIMIT=-1 composer install --no-dev --optimize-autoloadercomposer install --no-dev --optimize-autoloader --no-pluginscomposer install --no-dev --classmap-authoritativephp artisan config:cachevendor/autoload_classmap.phptry_filesroot/var/www/myapp/public/var/www/myapppublic/index.phptry_files $uri $uri/ /index.php?$query_string;location ~ \.php$fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;storage/bootstrap/cache/775www-datawwwphp artisan key:generate