LoginSignup
9
5

More than 3 years have passed since last update.

【Laravel】エラーの解決方法:Warning: require /public/../vendor/autoload.php): failed to open stream: No such file or directory in projects/laravel/github-laravel/public/index.php

Last updated at Posted at 2021-01-26

Laravelのプロジェクトをgithubの公式ページからDLし、php artisan serveを実行したところ以下エラーが発生。

Warning: require(/Users/projects/laravel/github-laravel/public/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/projects/laravel/github-laravel/public/index.php on line 34

Fatal error: require(): Failed opening required '/Users/projects/laravel/github-laravel/public/../vendor/autoload.php' (include_path='.:') in /Users/projects/laravel/github-laravel/public/index.php on line 34

エラー発生までの経緯

1. githubからlaravelプロジェクトをclone

https://github.com/laravel/laravel.git

github上のlaravelをクローン
git clone https://github.com/laravel/laravel.git <プロジェクト名>

2. サーバー起動

php artisan serveを実行したところ、エラーが発生

3. 強制起動

php -S localhost:8000 -t public/

強制的に起動し、localhost:8000にアクセスしたところ、同じエラー内容がブラウザに表示された。


発生原因

/vendor/autoload.phpというファイルがないことが問題。
これは、初期状態ではバンドルがインストールされておらず、autoloadも入っていないため。

必要なバンドルが記された、composer.jsonはあるが、実際にインストール済みのバンドルが列挙してあるcomposer.lockが存在していない。


対処法

composerを使ってバンドルをインストールする。

$ composer update

composer.jsonに書いてあるバンドルがズラーっとインストールされる。


起動

$ php artisan serve
Starting Laravel development server: http://127.0.0.1:8000

今度はautolodなしのエラーが発生せず、URLが表示された。


▼新たな問題 500番サーバーエラー

image.png

今度はサーバーエラーが表示された。


サーバーエラーの原因

ルート直下のstorage > laravel.log のエラーログを確認。

laravel.log
production.ERROR: No application encryption key has been specified. {"exception":"[object] (Illuminate\\Encryption\\MissingAppKeyException(code: 0): No application encryption key has been specified. at /Users/projects/laravel/github-laravel/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:79)

encryption key(暗号キー)がないというエラー。

キーが置かれている、ルート直下のenv.exampleを確認する。

.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

APP_KEYが記述されていない。これが原因。


対処法

APP_KEYを作成する。

1. .envファイルを作成する。

cp .env.example .env

windowsの場合は、copyコマンド

image.png

2. キーを作成する

$ php artisan key:generate

Application key set successfully.

▼.env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:afD5bgUa,,,,
APP_DEBUG=true
APP_URL=http://localhost

APP_KEYの作成完了

注意:.envファイルがない場合はエラーなるので先に作成しておくこと。また、.envファイルが空だと実行後も空のままになる。(なのでexample.envをコピーしておく)

3. キャッシュをクリアする

.envファイルを変更した場合は、内容を反映するためキャッシュクリアが必要。

php artisan cache:clear

4. 再起動

php artisan serve
image.png

無事トップページが表示された。


(補足)composerでLaravelプロジェクトを起動する

今回はgithubからLaravelをクローンしたため、 composerをupdateしたり、APP_KEYを作成する必要があったが、

composerを使ってLaravelプロジェクトを作成すれば、すぐにphp artisan serveを使ってもエラーが発生しないためおすすめ。

composerを使ってLaravelプロジェクトを作成する方法



以上。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5