require (vendor / autoload.php) : 스트림을 열지 못했습니다. 또는 디렉토리가 없습니다. 치명적인 오류

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

실제로이 오류는

경고 : 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 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 (곧 출시)은 설치 및 업데이트 결과 사이에 남아있는 불일치를 제거해야합니다.


답변

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

composer install

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

composer dump-autoload

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


답변

@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


답변

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

composer install

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

composer update


답변

적절한 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

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


답변

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

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

composer install

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


답변

실행 composer update. 그게 다야