新环境下Laravel 5.5.x执行composer install失败,php artisan加载出错
解决Composer Install执行php artisan package:discover时目录不存在的问题
我之前在新环境部署Laravel项目时也碰到过一模一样的报错,咱们一步步来排查解决:
1. 先确认.env文件与核心目录是否存在
这个报错大概率是Laravel依赖的关键目录缺失,或者.env配置异常导致的:
- 首先检查项目根目录下是否有
.env文件:你提供的post-root-package-install脚本会自动复制.env.example到.env,但新环境下可能因为权限问题或者.env.example缺失导致复制失败。手动执行复制命令:cp .env.example .env - 检查Laravel必需的目录是否存在,比如
storage/logs、bootstrap/cache,如果不存在就手动创建:mkdir -p storage/logs bootstrap/cache - 给这些目录设置正确的权限(根据你的服务器环境调整,比如Apache/Nginx的用户组):
chmod -R 775 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache # 以Ubuntu的Apache为例
2. 跳过脚本先完成依赖安装,再手动处理后续步骤
有时候post-install脚本会打断整个安装流程,我们可以先跳过脚本完成依赖安装:
composer install --no-scripts
安装完成后,手动执行Laravel初始化命令:
php artisan key:generate php artisan package:discover
这时候如果还是报错,会明确提示具体哪个目录不存在,直接创建对应目录即可。
3. 检查composer.json的Scripts配置完整性
你提供的post-install-cmd配置里写的是"Illumina...",看起来是被截断了!正常的Laravel项目post-install-cmd应该包含完整的Illuminate命令,比如:
"post-install-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postInstall", "php artisan optimize:clear", "php artisan package:discover" ]
如果你的配置确实不完整,修正成完整的命令后,再重新执行composer install。
4. 清理缓存与重新生成自动加载
如果以上步骤都试过还是有问题,清理缓存并重新生成自动加载文件:
composer dump-autoload php artisan cache:clear php artisan config:clear
内容的提问来源于stack exchange,提问作者syyu
相关产品推荐
相关产品推荐

