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
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番サーバーエラー
![]() |
---|
今度はサーバーエラーが表示された。
### サーバーエラーの原因 ルート直下のstorage > 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
を確認する。
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コマンド
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
![]() |
---|
無事トップページが表示された。
## (補足)composerでLaravelプロジェクトを起動する 今回はgithubからLaravelをクローンしたため、 composerをupdateしたり、APP_KEYを作成する必要があったが、
composerを使ってLaravelプロジェクトを作成すれば、すぐにphp artisan serve
を使ってもエラーが発生しないためおすすめ。
・composerを使ってLaravelプロジェクトを作成する方法
以上。