web-dev-qa-db-ja.com

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を実行しました)。

それで、私はこのファイルをWindowsコマンドラインで:dir /s autoload.phpを使って探しました、そして、それをここで見つけました:C:\Windows\SysWOW64\vendor\autoload.php

しかし、私にとっては、 syswow64 フォルダには autoload.php とは何の関係もありません。

62
adrTuIPKJ44

あなたが欠けているものはcomposer installを実行しています、それはあなたのパッケージをインポートして、そして自動ロードスクリプトと一緒にベンダフォルダを作成します。

相対パスが正しいことを確認してください。たとえば、PHPMailerのスクリプト例はプロジェクトルートの下のexamples/にあるため、そこから作曲家オートローダをロードするための正しい相対パスは../vendor/autoload.phpになります。

C:\Windows\SysWOW64\vendor\autoload.phpで見つけたautoload.phpはおそらくグローバルな作曲家のインストールです - そこには通常phpcs、phpunit、phpmdなどのものを置くでしょう。

composer updateは同じものではありません、そしておそらくあなたが使用したいものが not ではありません - あなたのコードが現在のパッケージバージョンでテストされるならupdateを実行することはさらなる作業とテストを必要とするかもしれません特別な理由がない限り、updateを実行してください。さらに明確にするために - あなたはおそらく決してあなたのサーバ上で決して決してローカルにcomposer updateを実行するべきではありません。

私はよく彼らが彼らのサーバーでそれを実行することができないので人々がcomposerを使うことができないという苦情を見ます(例えばそれは共有されていて、彼らはシェルアクセスを持っていないので)。その場合、 can はまだcomposerを使うことができます:それをローカルで実行し(そのような制限がない環境)、それが生成するローカルベンダーフォルダを他のすべてのPHPスクリプトと一緒にアップロードします。

112
Synchro

実行時にもエラーが発生した場合

composer install

最初にこのコマンドを実行してください

composer dump-autoload

このコマンドはすべてのコンパイル済みファイルとそのパスをクリーンアップします。

20
mbouzahir

@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

11
mcmacerson

まず、作曲家がインストールされていることを確認してください。

composer install

すでにインストールしている場合は、作曲家を更新してください。

composer update
5
IsharaNW

適切なautoload.php設定:

A)クイックアンサー

あなたのautoload.phpパスが間違っています。すなわち。 C:\Windows\SysWOW64\vendor\autoload.php日付:あなたはそれを変更する必要があります:C:\Users\<Windows User Name>\vendor\autoload.php


B)例題の手順:例として facebook/php-graph-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

あなたが尋ねたのと同じ質問について。答えは WAMP Server 64 BIT for Windows に対するこのパスでした。

それから、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

この質問をありがとうございました。それは私が同様の問題を解決するのを助けて、この簡単なチュートリアルを書くのを終えたので高く評価しました。

4
wpcoder

プロジェクトをGithubから複製した場合、または他の場所から入手した場合は、このエラーが発生します。これは、 vendorフォルダ や他のファイルが見つからないためです。 vendorフォルダ にはあなたのプロジェクトに依存するパッケージが含まれています。パッケージの依存関係はcomposer.jsonファイルに保存され、フォルダーは exclude while Githubにプッシュされました

単に実行することでこのエラーを修正します。

composer install

そうすれば、プロジェクトに必要なすべての資産を手に入れることができます。

2
Anand Mainali

私は自分のマシンにこのパスを持っていました:

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

それから私はcomposer installまたは/およびcomposer updateを実行しました、そしてそれはこのエラーを返しました:

ErrorException ZipArchive::extractTo...

そのエラーはあなたのパスが長すぎるためです、私は変更しました:

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

そして働いた!

2
jjoselon

まず、index.php内のルートを確認します。

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

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

私の場合はルートがうまくいかなかったので、ディレクトリを見直す必要がありました。

私は作曲家を削除し、適切な方法で再インストールすることで解決することができました。これが私がしたことです:

それから作曲家のインストールを再開することができました。この号の最後に私の答えが見つかりました: https://github.com/composer/composer/issues/5510

1
nwolybug

composer updateを実行します。それでおしまい

1
Bashir ahmad

プロジェクトフォルダーにベンダーフォルダーがないため、このエラーが発生しました。

警告:require(vendor/autoload.php):ストリームを開けませんでした:そのようなファイルまたはディレクトリはありません

gitを使用してプロジェクトをダウンロードすると、プロジェクトはvendor folderなしでダウンロードされます

Laravelが使用するすべてのクラスを含むすべてのパッケージがそこにあるため、/vendorが必要です。ベンダーディレクトリには、Composer依存関係が含まれています。

解決策は簡単ですこのコマンドを実行するだけです:

composer update --no-scripts 
composer update
  • composer update --no-scriptscomposer.jsonファイルで定義されたスクリプトの実行をスキップします。
  • composer updatecomposer.jsonファイルで指定されている依存関係を更新します。

このコマンドを使用すると、プロジェクトでベンダーフォルダーを再作成し、その後、プロジェクトは正常に動作し始めます。

0
Udhav Sarvaiya

この問題は私がgitからプロジェクトを複製して初めて実行したいときに起こりました。私はそのディレクトリでcomposer installを実行し、その作業を自分のために行いました。

0