Laravel 5 Nieudane otwarcie wymagało bootstrap /../ vendor / autoload.php

366

Niedawno zainstalowałem Laravela 5 przez kompozytora. Próbowałem utworzyć nowy kontroler przy użyciu narzędzia rzemieślnika i pojawia się następujący błąd:

bootstrap /../ vendor / autoload.php. Nie można otworzyć strumienia: brak takiego pliku lub katalogu. Folder „dostawca” nie istnieje.

Czy coś brakuje?

Scott
źródło

Odpowiedzi:

307

Uruchom kompozytora za pomocą --no-scripts

composer update --no-scripts  

To naprawi problem. Próbowałem tego na komputerach Mac i Linux.

Shubhamoy
źródło
14
Czasami po uruchomieniu: „instalacja kompozytora” również pojawia się ten błąd, więc najlepszą opcją jest najpierw: „instalacja kompozytora - bez skryptów”, a następnie normalne uruchomienie instalacji kompozytora.
herohat
3
Dokumentacja kompozytora: --no-scripts: Pomija wykonywanie skryptów zdefiniowanych w composer.json. ( getcomposer.org/doc/03-cli.md#update )
Aine
O wiele lepiej jest użyć instalacji kompozytora, ponieważ uruchomi on wszystko, co niezbędne do zainstalowania wszystkich zależności, w tym skryptów.
Leandro Jacques
błąd Kompozytor nie może znaleźć pliku composer.json w C: \ kompozytor Aby zainicjować projekt, należy utworzyć plik composer.json zgodnie z opisem w sekcji „Pierwsze kroki z getcomposer.org
PHPFan
composer installnie pracował dla mnie, composer update --no-scriptswykonał robotę. Dzięki!
endo64
137

Z jakiego systemu operacyjnego korzystasz? W systemie Windows: przejdź doCommand Prompt

ustaw ścieżkę do www/{ur project}

Dla mnie : www/laravel5

Następnie wpisz to polecenie: composer install

Automatycznie zainstaluje wszystkie zależności w vendor/

MONTS_MIND_Hacker
źródło
97

Uruchom composer installw folderze projektu głównego (lub php composer.phar install).

dan-klasson
źródło
76

Okazuje się, że nie włączyłem openssl w moim php.ini, więc kiedy stworzyłem nowy projekt z kompozytorem, został on zainstalowany ze źródła. Zmieniłem to i pobiegłem

composer update

teraz został utworzony folder dostawcy.

Scott
źródło
57

Czy utworzyć nowy projekt lub nie można sklonować istniejący projekt?

Jeżeli sklonowany istniejący projekt jest bardzo ważne, aby uruchomić

composer install

W ten sposób zostaną zainstalowane wszystkie brakujące zależności.

Ale jeśli utworzysz nowy projekt, powinieneś uruchomić to polecenie, aby utworzyć nowy projekt za pomocą kompozytora

composer create-project laravel/laravel name-of-your-project
Dimitri Acosta
źródło
23

Napotkałem ten sam problem. Stało się tak, ponieważ kompozytor nie mógł zainstalować zależności określonych w pliku composer.json. spróbuj uruchomić

composer install 

Jeśli to nie rozwiąże problemu, upewnij się, że zainstalowane są następujące moduły php. Php-mbstring php-dom

Aby zainstalować to rozszerzenie, uruchom następujące polecenie w terminalu

sudo apt-get install php-mbstring php-dom

po zakończeniu instalacji

spróbuj uruchomić polecenie w folderze głównym projektu

composer install 
naveddeshmukh
źródło
4
Zainstalowałem php-xml, aby ten działał, a nie php-dom (który nie istnieje w 16.04).
Evan Carroll,
1
Świetny!!! Zadziałało!! Instalacja php xml zamiast php-DOM jest akcja domyślna dla apt-get w ubuntu 16,04
user2928048
1
działało po zainstalowaniu mbstring i php-dom. Dziękuję Ci!
splunk
21

Po prostu uruchom to w katalogu, w którym zainstalowałeś swój projekt

composer install
Williem
źródło
1
Zrobiłem to i to działało, ale dlaczego? Chciałbym zrozumieć powód.
Simon Suh
1
@SimonSuh z jakiegoś powodu (awaria sieci, nowy projekt został utworzony bez wykonywania wszystkich poleceń, błąd podczas instalacji ręcznej, instalacja niestandardowa kompilacja ...) Zależności kompozytora, w których nie są zainstalowane lub są nieaktualne. to polecenie zainstaluje i zaktualizuje wszystkie zależności twojego projektu, co naprawi problem. mam nadzieję, że to wystarczy
Williem
20

Musisz ponownie wygenerować autoload.phpplik. możesz dump-autoloadto zrobić bez konieczności instalowania lub aktualizacji.

posługiwać się

composer dump-autoload

wygenerować autoload.phpplik ponownie w /vendorkatalogu.

Hamid Parchami
źródło
Działa to dla mnie, ale występuje ten błąd Błąd krytyczny: nie znaleziono klasy „Illuminate \ Foundation \ Application”.
Adnan haider
19

Poniższy krok rozwiązał mój problem. Możesz spróbować

composer update --no-scripts 
composer update
RASEL RANA
źródło
1
Rozwiązałem też mój problem! Dzięki
Crysfel,
1
Dziękuję bardzo!
GeekHades,
16

Po sprawdzeniu phpwersji i wielu badaniach problem był na Composerboku, więc po prostu uruchom następujące polecenie

composer install --ignore-platform-reqs

Hashmat Waziri
źródło
6

Kiedy nowy projekt utworzył laravel wymaga załadowania dostawców do automatycznego ładowania bibliotek, używamy aktualizacji kompozytora, aby

composer update

Kompozytor to menedżer zależności, który umożliwia przekazanie odpowiedzialności za zarządzanie swoimi zależnościami podmiotom zewnętrznym.

Suresh Kumar Amrani
źródło
5

Po prostu uruchom następujące polecenia,

composer update

Lub

composer install
Raham
źródło
5

przejdź do folderu projektu za pomocą cmd. uruchom następujące polecenie

composer update

zainstaluje brakujący folder dostawcy i pliki w twoim projekcie.

ale w niektórych przypadkach powoduje błąd typu „Twoja konfiguracja nie pozwala na połączenie z .....” w cmd.

w tym celu przejdź do pliku composer.json ,

zmień "secure-http": truena"secure-http": false

ale w niektórych przypadkach (jak w moim przypadku) możesz nie znaleźć takiej linii w swoim pliku. w tym celu wykonaj następujące czynności:

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

do

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

i ponownie uruchom composer updatepolecenie.

mam nadzieję, że to rozwiąże problem.

saadk
źródło
5

To rozwiązanie działało dla mnie. Powodem jest brak folderu dostawcy w aplikacji.

Wykonaj następujące kroki:

  1. jeśli twój projekt ma composer.jsonplik, usuń go

  2. następnie uruchomić

    composer require phpspec/phpspec

To polecenie powoduje dodanie folderu dostawcy do projektu

Jayani Sumudini
źródło
4

Wystarczy skonfigurować nowy projekt, używając composerzamiast laraveltego:

composer create-project --prefer-dist laravel/laravel myProje
Raheel Hasan
źródło
3

Też miałem ten błąd. Ale żadne z powyższych nie rozwiązało problemu. Więc odinstalowałem i ponownie zainstalowałem kompozytora. Potem zrobiłem composer update. i problem został rozwiązany.

Srijan Karki
źródło
pocomposer install
Hos Mercury
3

Miałem ten sam problem z Laravelem i rzemieślnikiem, rozwiązanie:

php artisan key:generate
Marcelo Agimóvel
źródło
2

Przed wykonaniem poniższych instrukcji należy upewnić się, że kompozytor jest zainstalowany globalnie na komputerze; Otwórz terminal Mac i uruchom następujące polecenie:

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

po zainstalowaniu kompozytora globalnie uruchom następujące polecenie po przejściu do katalogu projektu:

composer install

po zakończeniu zaktualizuj i zainstaluj wszystkie wymagane pakiety.

Krishneil
źródło
2

Mamy błąd, ponieważ mamy brakuje dostawcy folderu w naszym projekcie, katalog zawiera nasze sprzedawca zależności kompozytora.

Potrzebujesz /vendorfolderu, ponieważ wszystkie pakiety są dostępne i zawierają wszystkie klasy używane przez Laravela. Problem można rozwiązać po wykonaniu zaledwie dwóch kroków:

composer update --no-scripts 
composer update
  • --no-scripts : Pomija wykonywanie skryptów zdefiniowanych wcomposer.json
  • aktualizacja kompozytora : sprawdzi, czy są nowsze wersje bibliotek wymaganych w projekcie. Jeśli zostanie znaleziona nowsza wersja i jest ona zgodna z ograniczeniem wersji określonym w composer.jsonpliku, zastąpi ona zainstalowaną poprzednią wersję. composer.lockPlik będzie aktualizowany w celu uwzględnienia tych zmian.

Te dwa polecenia odtworzymy folder dostawcy w naszym projekcie, a następnie nasz projekt będzie działał sprawnie.

Udhav Sarvaiya
źródło
1

Dodałem composer.lockplik do .gitignore, po zniknięciu błędu pliku w repozytorium :)

Alupotha
źródło
1

Zdaję sobie sprawę, że twój plik composer.json będzie zawierał coś w rodzaju skryptu

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

co dla mnie działa:

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

usunięcie post install cmdpomogło uruchomić instalację kompozytora bez żadnego problemu.

Mam nadzieję że to pomoże

Twoje zdrowie!!

usrNotFound
źródło
1

Usuń folder dostawcy i uruchom polecenie instalacji kompozytora. Działa w 100%

orxanzadeh
źródło
1

Brakuje folderu dostawcy, prawdopodobnie jego nowego sklonowanego repozytorium lub nowego projektu

folder dostawcy jest zapełniany przez plik binarny kompozytora, który odczytuje plik composer.json lub wymagania systemowe i instaluje się spakowany w folderze dostawcy i tworzy skrypt automatycznego ładowania, który wszystko sklasyfikował

composer update
AWS PS
źródło
1

Następnie usuń dostawcęcomposer install

Hassan Raza
źródło
0

W moim przypadku musiałem włączyć inne rozszerzenie, a mianowicie php_mbstring.dllw php.inipliku, zanim będzie mogło działać. Jest wymieniony pod extension=php_mbstring.dll. Znajdź go w php.inipliku i usuń przed nim średnik ( ;) i zapisz plik.

Po tym uruchom install composerponownie w katalogu głównym aplikacji Laravel i powinno działać.

Bono
źródło
0

Jeśli jesteś użytkownikiem systemu Windows, możesz odinstalować Composer. Następnie zainstaluj Composer. Następnie instalujesz Laravel. Może to zadziała.

Sadik Alamin Tushar
źródło
0

mój problem został rozwiązany przez

composer update
composer install
php artisan key:generate

jeśli masz inny problem, możesz wyczyścić pamięć podręczną i skonfigurować Wyczyść pamięć podręczną trasy:

php artisan route:cache

Wyczyść pamięć podręczną:

php artisan view:clear

Wyczyść pamięć podręczną konfiguracji:

php artisan config:cache
sanjay
źródło
0

Mam to, kiedy to zrobiłem composer updatezamiast composer install.

Mick
źródło