require (vendor / autoload.php) : 스트림을 열지 못했습니다.


130

이 문제가 여러 번 게시되었다는 것을 알고 있지만 나에게는 다른 문제인 것 같습니다.

실제로이 오류는

경고 : require (vendor / autoload.php) : 스트림을 열지 못했습니다. 3 행의 C : \ xampp \ htdocs \ site_web \ send_mail.php에 해당 파일 또는 디렉토리가 없습니다.

치명적인 오류 : require () : 3 행의 C : \ xampp \ htdocs \ site_web \ send_mail.php에서 필수 'vendor / autoload.php'(include_path = 'C : \ xampp \ php \ PEAR')를 열지 못했습니다.

이 줄에서 내 코드 시작 부분에 나타납니다.

require 'vendor/autoload.php';

그래서 내 컴퓨터 어딘가에 /vendor/autoload.php 파일이 있어야한다고 생각합니다 (나는 composer를 설치하고 실행했습니다 composer require phpmailer/phpmailer).

그래서 dir /s autoload.phpWindows 명령 줄에서 다음을 사용하여이 파일을 찾았고 여기에서 하나를 찾았습니다. C:\Windows\SysWOW64\vendor\autoload.php,

하지만 나를 위해 syswow64 폴더에는 autoload.php로 볼 것이 없습니다. 여기서 누락 된 내용을 볼 수 없습니다.


설치 전 스크립트 섹션의 composer.json 파일에 php artisan이 위 또는 아래로있는 경우에도 발생할 수 있습니다. 아직 사용할 수없는 유지 관리 모드를 실행하려면 공급 업체 폴더에 파일이 필요한 것 같습니다.
Thomas

답변:


234

누락 된 것은 실행 중이며 composer install패키지를 가져오고 자동로드 스크립트와 함께 공급 업체 폴더를 만듭니다.

상대 경로가 올바른지 확인하십시오. 예를 들어 PHPMailer의 예제 스크립트 examples/는 프로젝트 루트 아래에 있으므로 컴포저 자동 로더를로드 할 올바른 상대 경로는 ../vendor/autoload.php.

당신이 찾은 autoload.php C:\Windows\SysWOW64\vendor\autoload.php는 아마도 글로벌 컴포저 설치 일 것입니다. 일반적으로 phpcs, phpunit, phpmd 등을 넣을 것입니다.

composer update입니다 하지 같은 일, 아마 하지 당신이 사용하고자하는 것. 현재 패키지 버전으로 코드를 테스트 한 경우 실행 update하면 추가 작업과 테스트가 필요할 수있는 손상이 발생할 수 있으므로 update특정 이유가 있고 의미를 정확히 이해 하지 않는 한 실행 하지 마십시오 . 더 명확히하기 위해 composer update, 프로덕션에서 앱을 손상시킬 가능성이 높으므로 서버에서는 절대 로컬 로만 실행 해야합니다.

나는 종종 사람들이 컴포저를 서버에서 실행할 수 없기 때문에 사용할 수 없다는 불만을 봅니다 (예 : 공유되고 쉘 액세스 권한이 없기 때문에). 이 경우 에도 여전히 composer를 사용할 있습니다. 로컬에서 실행 (이러한 제한이없는 환경)하고 다른 모든 PHP 스크립트와 함께 생성하는 로컬 공급 업체 폴더를 업로드합니다.

실행 composer update 또한를 수행하고 composer install현재 vendor폴더 가없는 경우 (예 : 프로젝트의 새 체크 아웃이있는 경우) composer install효과적으로을 수행 composer update하지만 둘 사이의 차이점은 확실히 상호 교환 할 수 없기 때문에 이해하는 것이 여전히 중요합니다 .

단일 패키지의 이름을 지정하여 업데이트 할 수도 있습니다. 예를 들면 다음과 같습니다.

composer update ramsey/uuid

그러면에 지정된 버전이 다시 확인 composer.json되고 공급 업체 폴더에 설치 composer.lock되고 일치하도록 파일이 업데이트 됩니다. composer update하나의 패키지에 대한 특정 업데이트가 필요한 경우 일반적인 문제보다 문제가 발생할 가능성이 훨씬 적습니다 .

Composer 2.0 (곧 출시)은 설치 및 업데이트 결과 사이에 남아있는 불일치를 제거해야합니다.


1
작성기 설치를 어떻게 실행합니까? 그것은 명령으로 인식 아니에요
이본 Aburrow을

감사합니다, 그것을 발견하고 다운로드했습니다-그러나 PHP가 로컬로 설치된 위치를 묻습니다. PHP를 로컬 (또는 Composer)에 설치하고 싶지는 않지만 Google Cloud 앱에서 실행하고 싶습니다.
Yvonne Aburrow

이 문서의 단계를 따르고
Yvonne Aburrow

1
PHP 용 Google 클라우드는 종속성을 설치하기위한 composer를 제공합니다. 설정 만하면됩니다. 여기를 참조하세요. cloud.google.com/appengine/docs/flexible/php/…
Synchro

2
예, Google 클라우드를 실행해야하며 파일 composer install내용을 읽고 composer.json모든 종속성을 vendor폴더에 설치 합니다. 그렇지 않은 경우 내가 지적한 문서를 읽고 모든 것을 다시 확인하는 것이 좋습니다. 이것이 "업로드"와 "배포"의 차이점입니다.
Synchro

40

실행할 때도 오류가 발생하면

composer install

이 명령을 먼저 실행하십시오.

composer dump-autoload

이 명령은 모든 컴파일 된 파일과 해당 경로를 정리합니다.


15

@Bashir는 거의 나를 도왔지만 필요했습니다.

composer update --no-scripts

나는 여기에서 답을 찾았습니다 : https://laracasts.com/discuss/channels/general-discussion/fatal-error-class-illuminatefoundationapplication-not-found-in-pathtoprojectbootstrapappphp-on-line-14?page=0


그것이 무엇을하고 있는지 정확히 이해하지 않는 한 이것을하지 마십시오. 프로덕션에서 앱이 중단 될 가능성이 높습니다.
싱크로

9

먼저 작곡가를 설치했는지 확인하십시오.

composer install

이미 설치 한 경우 작성기를 업데이트하십시오.

composer update

1
이 답변은 사용자에게 도움이되도록 심각한 편집이 필요합니다. 제안 사항을 명확하게 설명하고이 상황에서 유용한 코드 샘플을 제공하십시오.
Stefan Crain 2018

8

적절한 autoload.php구성 :

A) 빠른 답변 :

autoload.php 경로가 잘못되었습니다. 즉. C:\Windows\SysWOW64\vendor\autoload.php 현재까지 : 다음으로 변경해야합니다.C:\Users\<Windows User Name>\vendor\autoload.php


B) 단계와 예 : 우리는 걸릴 북 / PHP 그래프-SDK 일례로서 단계; Package Name필요에 따라로 변경하십시오 .

  1. composer.exe 설치
  2. CMD 프롬프트를 엽니 다. + R+ 유형CMD
  3. 이 명령을 실행하십시오. composer require facebook/graph-sdk
  4. PHP 페이지에 경로 포함 : require_once 'C:\Users\<Windows User Name>\vendor\autoload.php';
  5. 구성 SecretsAccess Token패키지 등을 정의하십시오 .
  6. 행복한 코디 니그.

C) 추가 세부 사항 :

Windows에 composer를 설치하면 패키지에이 기본 경로가 설정됩니다. 거기에서 찾을 수 있으며 오토로더 경로를 포함 할 수 있습니다.

C:\Users\<Windows User Name>\vendor

당신이 물었던 것과 같은 질문에 대해; 대답은 WindowsWAMP Server 64 BIT 의이 경로였습니다 .

그런 다음 PHP 애플리케이션에서 다음을 변경하십시오.

require_once __DIR__ . '/vendor/autoload.php'; 

에:

require_once 'C:\Users\<Windows User Name>\vendor\autoload.php'; 

아래에서 Windows 사용자 이름을 찾으십시오.C:\Users\

이 모든 작업을 수행하기 전에 B)에서 언급했듯이 다음 명령을 실행해야합니다.

composer require <package name>

예를 들어 facebook php SDK의 경우 :

composer require facebook/graph-sdk

이 질문을 해주셔서 감사합니다. 비슷한 문제를 해결하는 데 도움이되었고이 간단한 자습서 작성을 마쳤 기 때문에 감사했습니다.


5

Github에서 프로젝트를 복제했거나 다른 곳에서 가져온 경우이 오류가 발생합니다. 공급 업체 폴더 및 기타 파일 이 누락 되었기 때문 입니다. 공급 업체 폴더는 프로젝트에 의존하는 패키지가 포함되어 있습니다. 패키지 종속성은 composer.json파일 에 저장되고 Github로 푸시하는 동안 폴더가 제외되었습니다 .

다음을 실행하여이 오류를 수정하십시오.

composer install

그러면 프로젝트에 필요한 모든 자산을 얻을 수 있습니다.


4

실행 composer update. 그게 다야


6
예, 이미 받아 들여진 답변의 일부입니다. 복제의 요점은 무엇입니까?
Nico Haase

또한 프로덕션에서 앱을 중단시킬 수있는 나쁜 조언이기도합니다.
싱크로

2

내 컴퓨터에 다음 경로가 있습니다.

C:/xampp5.0/htdocs/project-recordando-symfony/project-recordando-symfony

그런 다음 실행 composer install하거나 다음 composer update오류를 반환했습니다.

ErrorException ZipArchive::extractTo...

그 오류는 경로가 너무 길기 때문에 다음과 같이 변경했습니다.

C:/xampp5.0/htdocs/p-symfony/*

그리고 일했습니다!


2

먼저 index.php 내부의 경로를 검토하십시오.

require __DIR__.'/../vendor/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

제 경우에는 경로가 작동하지 않아 디렉토리를 검토해야했습니다.


시간을 절약했습니다. 감사합니다. 1 명의 업 보트 메이트를 받았습니다. nice work
iamnabink

1

작곡가를 제거하고 적절한 방법으로 재설치하여 해결할 수있었습니다. 내가 한 일은 다음과 같습니다.

  • sudo apt 제거 작곡가
  • sudo apt autoclean && sudo apt autoremove
  • https://getcomposer.org/doc/00-intro.md 의 지침에 따라 전역으로 설치 됩니다. 다운로드 위치 : https://getcomposer.org/installer 전역 설치 : mv composer.phar / usr / local / bin / composer ( 참고 : 내 것을 mv composer.phar / usr / bin / composer로 옮겨야했습니다)

그런 다음 작곡가를 다시 설치하여 작업 할 수있었습니다. 이 문제의 하단에서 내 대답을 찾았습니다 : https://github.com/composer/composer/issues/5510


1

프로젝트 폴더에 공급 업체 폴더 가 없으므로 다음 오류가 발생합니다.

경고 : require (vendor / autoload.php) : 스트림을 열지 못했습니다 : 해당 파일이나 디렉토리가 없습니다.

당신은을 통해 프로젝트를 다운로드 할 때 자식 ,이 프로젝트는없이 다운로드 공급 업체 폴더

/vendorLaravel이 사용하는 모든 클래스를 포함하여 모든 패키지가 거기에 있기 때문에 필요 합니다. 공급 업체 디렉토리에는 Composer 종속성이 포함되어 있습니다.

해결책은 간단 합니다. 다음 명령을 실행하십시오.

composer update --no-scripts 
composer update
  • composer update --no-scriptscomposer.json파일에 정의 된 스크립트 실행을 건너 뜁니다 .
  • composer updatecomposer.json파일에 지정된대로 종속성을 업데이트합니다 .

이 명령을 사용하면 프로젝트에서 공급 업체 폴더 를 다시 만들고 그 후에 프로젝트가 정상적으로 작동하기 시작합니다.


0

복제 된 저장소가 있고 이러한 유형의 오류가 발생했을 때 설정하려고하면 루트 디렉토리에 있어야하는 "공급 업체"라는 디렉토리가 있습니다.

".gitingore"파일은 GIT에 공급 업체 디렉터리를 포함하지 않는 코드를 작성했습니다. 따라서 GIT를 복제 한 후 프로젝트에서 공급 업체 디렉터리 누락 문제에 직면하게됩니다.

공급 업체 디렉토리를 추가하면 프로젝트가 다시 작동하기 시작합니다.


0

예에 대한 필수 라이브러리로 composer.json 파일을 만듭니다.

{
    "require": {
        "mpdf/mpdf": "^6.1"
    }
}

composer.json이있는 아래 명령을 실행합니다.

composer install

Drupal의 경우 :

drupal의 웹 루트 폴더를 사용하여 예 :

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/vendor/autoload.php';

다른 시스템의 경우 : 루트 폴더 변수 또는 위치를 사용하여 autoload.php를 포함하십시오.


0

나를 위해이 명령을 먼저 실행하십시오.

composer dump-autoload

공급 업체 폴더를 추가합니다.

그런 다음이 명령을 실행하십시오.

composer update --no-scripts

작곡가를 업데이트합니다.


0

이 오류는 일부 파일이 누락되어 발생하며 주된 이유는 " Composer "입니다.

여기에 이미지 설명 입력

먼저 CMD에서 다음 명령을 실행하십시오.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

그런 다음 새 프로젝트를 만듭니다.
예 :

D:/Laravel_Projects/New_Project
laravel new New_Project

그 후 다음을 사용하여 서버를 시작하십시오.

php artisan serve

-1

php.ini에서 auto_prepend_file 속성 변경

; Automatically add files before PHP document. 
;http://php.net/auto-prepend-file 
auto_prepend_file =

이것이 질문과 어떤 관련이 있습니까? 완전히 다른 솔루션과 허용 답이있다
니코 하세

오늘 아침에 다음과 같은 오류가 발생했습니다. "경고 : 알 수 없음 : 스트림을 열지 못했습니다. 0 행의 알 수 없음에 해당 파일 또는 디렉토리가 없습니다."따라서이 솔루션을 작성했습니다.
ercvs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.