Laravel 5 Échec de l'ouverture requise bootstrap /../ vendor / autoload.php

366

J'ai récemment installé Laravel 5 via composer. J'ai essayé de créer un nouveau contrôleur en utilisant artisan et j'obtiens l'erreur suivante:

bootstrap /../ vendor / autoload.php. Impossible d'ouvrir le flux: aucun fichier ou répertoire de ce type. Le dossier "fournisseur" n'existe pas.

Suis-je en train de manquer quelque chose?

Scott
la source

Réponses:

307

Exécuter le compositeur avec --no-scripts

composer update --no-scripts  

Cela résoudra le problème. J'ai essayé cela sur Mac et Linux.

Shubhamoy
la source
14
Parfois, lorsque vous exécutez: "composer install", vous obtenez également cette erreur, donc la meilleure option est d'abord exécutée: "composer install --no-scripts", puis exécutez composer installer normalement.
herohat
3
Documentation du compositeur: --no-scripts: ignore l'exécution des scripts définis dans composer.json. ( getcomposer.org/doc/03-cli.md#update )
Aine
Il est préférable d'utiliser l'installation de composer, car il exécutera tout le nécessaire pour installer toutes les dépendances, y compris les scripts.
Leandro Jacques
erreur Composer n'a pas pu trouver un fichier composer.json dans C: \ composer Pour initialiser un projet, veuillez créer un fichier composer.json comme décrit dans la section "Getting Started" de
getcomposer.org
composer installne travaillait pas pour moi, a composer update --no-scriptsfait le travail. Merci!
endo64
137

Quel système d'exploitation utilisez-vous? Pour Windows: accédez àCommand Prompt

définir le chemin vers www/{ur project}

Pour moi : www/laravel5

Tapez ensuite cette commande: composer install

Il installera automatiquement toutes les dépendances dans vendor/

MONTS_MIND_Hacker
la source
97

Exécutez composer installdans votre dossier de projet racine (ou php composer.phar install).

dan-klasson
la source
76

Il s'avère que je n'ai pas activé openssl dans mon php.ini, donc lorsque j'ai créé mon nouveau projet avec composer, il a été installé à partir des sources. J'ai changé ça et j'ai couru

composer update

maintenant le dossier fournisseur a été créé.

Scott
la source
57

Avez-vous créé un nouveau projet ou cloné un projet existant?

Si vous avez cloné un projet existant, il est très important d'exécuter

composer install

De cette façon, toutes les dépendances manquantes seront installées.

Mais si vous créez un nouveau projet, vous devez exécuter cette commande pour créer un nouveau projet à l'aide de composer

composer create-project laravel/laravel name-of-your-project
Dimitri Acosta
la source
23

J'ai rencontré le même problème. Cela s'est produit car composer n'a pas pu installer les dépendances spécifiées dans le fichier composer.json. essayez de courir

composer install 

Si cela ne résout pas le problème, assurez-vous que les modules php suivants sont installés php-mbstring php-dom

Pour installer ces extensions, exécutez ce qui suit dans le terminal

sudo apt-get install php-mbstring php-dom

une fois l'installation terminée

essayez d'exécuter la commande dans le dossier racine de votre projet

composer install 
naveddeshmukh
la source
4
J'ai installé php-xml pour que cela fonctionne plutôt que php-dom (qui n'existe pas en 16.04).
Evan Carroll
1
Génial!!! Ça a marché!! Installer php-xml au lieu de php-dom est une action par défaut pour apt-get dans ubuntu 16.04
user2928048
1
cela a fonctionné après l'installation de mbstring et php-dom. Je vous remercie!
Splunk
21

Il suffit de l'exécuter dans le répertoire où vous avez installé votre projet

composer install
Williem
la source
1
J'ai fait ça et ça a marché, mais pourquoi? J'aimerais comprendre la raison s'il vous plaît.
Simon Suh
1
@SimonSuh pour une raison quelconque (panne de réseau, nouveau projet a été créé sans passer par toutes les commandes, erreur lors de l'installation manuelle, installation de build personnalisée ...) dépendances du compositeur où aucune n'est installée ou n'est pas à jour. cette commande installera et mettra à jour toutes les dépendances de votre projet et cela résoudra le problème. j'espère que c'est suffisant
Williem
20

Vous devez régénérer le autoload.phpfichier. vous pouvez utiliserdump-autoload pour le faire sans avoir à passer par une installation ou une mise à jour.

utilisation

composer dump-autoload

pour générer autoload.phpà nouveau le fichier dans le /vendorrépertoire.

Hamid Parchami
la source
Cela fonctionne pour moi mais avec cette erreur Erreur fatale: Classe 'Illuminate \ Foundation \ Application' introuvable.
Adnan haider
19

Suite à cette étape ci-dessous, j'ai résolu mon problème. Vous pouvez essayer

composer update --no-scripts 
composer update
RASEL RANA
la source
1
Résolu mon problème aussi! Merci
Crysfel
1
Merci beaucoup!
GeekHades
16

Après avoir vérifié la phpversion et beaucoup de recherches, le problème était sur le Composercôté alors exécutez simplement la commande suivante

composer install --ignore-platform-reqs

Hashmat Waziri
la source
6

Lorsque le nouveau projet créé le laravel nécessite de charger les fournisseurs pour charger automatiquement les bibliothèques, nous utilisons la mise à jour du compositeur pour

composer update

Composer est un gestionnaire de dépendances qui vous permet de déléguer la responsabilité de la gestion de vos dépendances à un tiers.

Suresh Kumar Amrani
la source
5

Exécutez simplement les commandes suivantes,

composer update

Ou

composer install
Raham
la source
5

allez dans votre dossier de projet via cmd. exécutez la commande suivante

composer update

il installera le dossier et les fichiers du fournisseur manquants dans votre projet.

mais dans certains cas, cela donne une erreur comme "Votre configuration ne permet pas la connexion à ....." dans cmd.

pour cela allez dans votre fichier composer.json ,

changer "secure-http": truepour"secure-http": false

mais dans certains cas (comme dans mon cas), vous ne trouverez peut-être pas une telle ligne dans votre fichier. pour cela faire l'action suivante:

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

à

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

et courir à nouveau composer update commande.

espérons que cela résoudra le problème.

saadk
la source
5

Cette solution a fonctionné pour moi. La raison n'est pas d'avoir un dossier fournisseur dans votre application.

Suivez ces étapes:

  1. si votre projet contient un composer.jsonfichier, supprimez-le

  2. puis exécutez

    composer require phpspec/phpspec

Cette commande ajoute un dossier fournisseur à votre projet

Jayani Sumudini
la source
4

Configurez simplement un nouveau projet en utilisant composerau lieu de laravelcomme ceci:

composer create-project --prefer-dist laravel/laravel myProje
Raheel Hasan
la source
3

J'ai également eu cette erreur. Mais rien de tout cela n'a résolu le problème. J'ai donc désinstallé et installé à nouveau le compositeur. Alors je l'ai fait composer update. et le problème a été résolu.

Srijan Karki
la source
aprèscomposer install
Hos Mercury
3

J'ai eu le même problème avec laravel et artisan, la solution:

php artisan key:generate
Marcelo Agimóvel
la source
2

Avant d'exécuter les instructions suivantes, vous devez vous assurer que le compositeur est installé globalement sur votre machine; Ouvrez votre terminal Mac et exécutez la commande suivante:

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

une fois que composer est installé globalement, exécutez la commande suivante une fois que vous êtes dans le répertoire du projet:

composer install

une fois terminé, mettez à jour et installez tous les packages requis.

Krishneil
la source
2

Nous avons obtenu une erreur car il manque un dossier de fournisseur dans notre projet. Le répertoire du fournisseur contient nos dépendances Composer.

Besoin d'un /vendordossier car tous les packages sont là et incluent toutes les classes utilisées par Laravel. Un problème peut être résolu après seulement deux étapes:

composer update --no-scripts 
composer update
  • --no-scripts : ignore l'exécution des scripts définis danscomposer.json
  • mise à jour du composeur : cela vérifiera les nouvelles versions des bibliothèques dont vous avez besoin dans votre projet. Si une version plus récente est trouvée et qu'elle est compatible avec la contrainte de version définie dans le composer.jsonfichier, elle remplacera la version précédente installée. Le composer.lockfichier sera mis à jour pour refléter ces changements.

Ces deux commandes, nous recréerons le dossier fournisseur dans notre projet et après cela notre projet fonctionnera sans problème.

Udhav Sarvaiya
la source
1

J'ai ajouté un composer.lockfichier à .gitignore, après la validation de ce fichier dans le référentiel, l'erreur a disparu :)

Alupotha
la source
1

Quelque chose que je réalise est que votre fichier composer.json aura une sorte de script comme

"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"
    ]
},

ce qui fonctionne pour moi:

"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"
    ]
},

la suppression a post install cmdaidé à exécuter l'installation de composer sans aucun problème.

J'espère que cela t'aides

À votre santé!!

usrNotFound
la source
1

Supprimez le dossier du fournisseur et exécutez la commande d'installation de composer. Il fonctionne à 100%

orxanzadeh
la source
1

Il vous manque le dossier du fournisseur, probablement son nouveau référentiel cloné ou son nouveau projet

le dossier du fournisseur est rempli par le binaire du compositeur qui lit le fichier composer.json ou les exigences du système et installe le package dans le dossier du fournisseur et crée un script de chargement automatique qui a tout classé

composer update
AWS PS
la source
1

Supprimer le fournisseur puiscomposer install

Hassan Raza
la source
0

Dans mon cas, j'ai dû activer une autre extension, à savoir php_mbstring.dlldans le php.inifichier avant de pouvoir fonctionner. Il est répertorié sous extension=php_mbstring.dll. Trouvez-le dans le php.inifichier et supprimez le point-virgule ( ;) devant lui et enregistrez le fichier.

Après cela, exécutez à install composernouveau dans le répertoire racine de votre application Laravel et cela devrait fonctionner.

Bono
la source
0

Si vous êtes un utilisateur Windows, vous pouvez désinstaller Composer. Installez ensuite Composer. Après cela, vous installez Laravel. Peut-être que cela fonctionnera.

Sadik Alamin Tushar
la source
0

mon problème est résolu par

composer update
composer install
php artisan key:generate

si vous avez un autre problème, vous pouvez vider le cache et configurer Vider le cache de l'itinéraire:

php artisan route:cache

Vider le cache de vue:

php artisan view:clear

Vider le cache de configuration:

php artisan config:cache
sanjay
la source
0

Je l'ai eu quand je l'ai fait composer updateau lieu de composer install.

Mick
la source