Laravel 5无法打开所需的引导程序../vendor/autoload.php


366

我最近通过作曲家安装了Laravel 5。我尝试使用artisan创建新的控制器,但出现以下错误:

bootstrap /../ vendor / autoload.php。无法打开流:没有这样的文件或目录。“供应商”文件夹不存在。

我想念什么吗?

Answers:


307

使用--no-scripts运行作曲家

composer update --no-scripts  

这将解决问题。我在Mac和Linux上尝试过。


14
有时当您运行:“ composer install”时,也会出现该错误,因此最好的选择是先运行:“ composer install --no-scripts”,然后正常运行composer install。
herohat '16

3
Composer文档:--no-scripts:跳过composer.json中定义的脚本的执行。(getcomposer.org/doc/03-cli.md#update
艾内

使用composer install更好,因为它将运行安装所有依赖项(包括脚本)所需的一切。
Leandro Jacques

错误Composer在C:\ composer中找不到composer.json文件要初始化项目,请按照getcomposer.org “入门”部分中所述创建一个composer.json文件
PHPFan

composer install不是为我工作,而是composer update --no-scripts完成了工作。谢谢!
endo64”,

137

您正在使用哪个操作系统?对于Windows:转到Command Prompt

设定路径 www/{ur project}

为了我 : www/laravel5

然后输入以下命令: composer install

它将自动安装所有依赖项 vendor/


97

运行composer install在你的项目根文件夹(或php composer.phar install)。


76

原来我没有在php.ini中启用openssl,所以当我用composer创建新项目时,它是从源代码安装的。我改变了并跑了

composer update

现在已创建供应商文件夹。


57

您是创建新项目还是克隆现有项目?

如果克隆现有项目,则运行非常重要

composer install

这样,将安装所有缺少的依赖项。

但是,如果您创建一个新项目,则应运行此命令以使用composer创建一个新项目

composer create-project laravel/laravel name-of-your-project

23

我遇到了同样的问题。发生这种情况是因为composer无法安装composer.json文件中指定的依赖项。尝试跑步

composer install 

如果这样做不能解决问题,请确保已安装以下php模块php-mbstring php-dom

要安装此扩展,请在终端中运行以下命令

sudo apt-get install php-mbstring php-dom

安装完成后

尝试在您的项目根文件夹中运行命令

composer install 

4
我安装了php-xml来使它工作,而不是php-dom(在16.04中不存在)。
埃文·卡洛尔

1
大!!!有效!!对于安装PHP的XML,而不是PHP-DOM是默认操作在Ubuntu易于得到16.04
user2928048

1
安装mbstring和php-dom后,它可以工作。谢谢!
1998年

21

只需在安装项目的目录中运行

composer install

1
我做到了,它奏效了,但是为什么呢?我想了解原因。
西蒙·苏

1
@SimonSuh出于某种原因(网络故障,没有通过所有命令创建新项目,手动安装过程中发生错误,自定义版本安装...)构成器依赖项,其中未安装或未更新。此命令将安装和更新项目的所有依赖关系,这将解决此问题。希望这足够了
Williem '16

20

您需要重新生成autoload.php文件。您可以使用它dump-autoload来执行此操作,而不必进行安装或更新。

采用

composer dump-autoload

autoload.php再次在/vendor目录中生成文件。


这对我有用,但有此错误致命错误:找不到类'Illuminate \ Foundation \ Application'。
阿德南·海德


16

在检查php版本和大量研究后,问题就在Composer旁边,因此只需运行以下命令

composer install --ignore-platform-reqs



5

只需运行以下命令,

composer update

要么

composer install

5

通过cmd转到您的项目文件夹。运行以下命令

composer update

它将在您的项目中安装缺少的供应商文件夹和文件。

但是在某些情况下,它会在cmd中显示“您的配置不允许连接到.....”这样的错误。

为此转到您的composer.json文件,

更改 "secure-http": true"secure-http": false

但是在某些情况下(例如我的情况),您可能在文件中找不到这样的行。为此,请执行以下操作:

change "config": {
        "preferred-install": "dist"
}

"config": {
    "preferred-install": "dist",
    "secure-http": false
}

再跑一次 composer update命令。

希望这能解决问题。


5

这个解决方案对我有用。原因是没有供应商文件夹您的应用程序中。

按着这些次序:

  1. 如果您的项目有composer.json文件,请将其删除

  2. 然后跑

    composer require phpspec/phpspec

该命令将供应商文件夹添加到您的项目





2

在执行以下说明之前,您需要确保已在计算机上全局安装了composer。打开Mac终端,然后运行以下命令:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

全局安装composer后,在项目目录中后,请运行以下命令:

composer install

完成后,更新并安装所有必需的软件包。


2

我们收到一个错误消息是因为我们的项目缺少供应商文件夹,供应商目录包含我们的Composer依赖项。

需要/vendor文件夹,因为所有软件包都在那里,包括Laravel使用的所有类,只需执行以下两个步骤即可解决问题:

composer update --no-scripts 
composer update
  • --no-scripts:跳过执行中定义的脚本composer.json
  • composer update:这将检查项目中所需的较新版本的库。如果找到较新的版本,并且与composer.json文件中定义的版本限制兼容,它将替换先前安装的版本。该composer.lock文件将被更新以反映这些更改。

通过这两个命令,我们将在项目中重新创建vendor文件夹,然后我们的项目将顺利运行。


1

composer.lock将该文件添加到.gitignore后,将该文件提交到存储库错误消失了:)


1

我意识到您的composer.json文件将具有某种脚本,例如

"scripts": {
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},

什么对我有用:

"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},

删除post install cmd帮助正在运行的作曲家安装没有任何问题。

希望这可以帮助

干杯!!


1

删除供应商文件夹并运行composer install命令。它正在工作100%


1

您缺少供应商文件夹,可能是其新克隆的存储库或新项目

供应商文件夹由composer二进制文件填充,该二进制文件读取composer.json文件或系统要求,并打包打包在供应商文件夹下,并创建一个自动分类的自动加载脚本

composer update


0

就我而言,我必须启用另一个扩展名,即php_mbstring.dllphp.ini文件中启用它才能起作用。它列在下extension=php_mbstring.dll。在php.ini文件中找到它,并删除其;前面的分号(),然后保存文件。

之后install composer,请在您的Laravel应用程序的根目录中再次运行,它应该可以正常工作。


0

如果您是Windows用户,则可以卸载Composer。然后安装Composer。之后,您需要安装Laravel。也许会起作用。


0

我的问题解决了

composer update
composer install
php artisan key:generate

如果您有任何其他问题,可以清除缓存并配置清除路由缓存:

php artisan route:cache

清除视图缓存:

php artisan view:clear

清除配置缓存:

php artisan config:cache

0

我这样做的时候composer update代替了composer install

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.