1. TOP
  2. web
  3. php
  4. laravel
  5. グローバルなHomesteadでLaravel環境構築

グローバルなHomesteadでLaravel環境構築

原因としてよくあるのが、GitHubなどで他人のリモートリポジトリからクローンしてきたLaravelのプロジェクトフォルダの場合、基本的に /vendor フォルダは個々の環境に依存してGitの管理下に置かれないため、このようなエラーの原因となることがあります。

Laravelのエラー:Fatal error: require(): Failed opening required ‘/project/vendor/autoload.php’ (include_path=’.:’) in /project/artisan on line 18

このエラーはおそらく上述したようにlaravelを新たにインストールした場合ではなく、github等からlaravelベースのソースをcloneして配置した場合に起こるようです。

複数のLaravel環境をHomestead上で動かす

このエラーは composer install で一発解決。

$ composer install

再び上記ブログより。

コマンド入力後に諸々のファイルダウンロードが始まり、最終的に Package manifest generated successfully. と表示されれば成功です。 composer install をすることでprojectフォルダ内に vendor というフォルダが作成され、見つからないとアラートが出ていた /project/vendor/autoload.php のファイルも存在することになります。

Laravelのエラー:Fatal error: require(): Failed opening required ‘/project/vendor/autoload.php’ (include_path=’.:’) in /project/artisan on line 18

Package manifest generated successfully.

composer install の一連の処理が成功し、「パッケージマニフェストが正常に生成されました」

.envを新規作成する

再びビルトインサーバーを立ち上げる。

php artisan serve --host 192.168.10.10 --port 8000

サーバーは起動したが、ブラウザに「No input file specified.」と表示される。

Homestead.yaml の sites: で、パス指定を間違って、ファイルが見つからないだけだった。修正。

sites:
- map: homestead.test
to: /home/vagrant/code/dotinstall_myblog/myblog/public

ここで再びwebサーバー立ち上げようとしたが、今度は500エラーが!

.env ファイルがないのが原因だった。環境に依存する設定を記述する .env ファイルは、Git管理から外れているため、新規作成する必要がある。ドットインストールの、Laravel入門の動画でも、こんな事を言っていた。

.env ファイルには環境に依存するような設定値を書いておき、 config フォルダにあるファイルからは .env ファイルに書かれた値を参照するといった使い方をする。こうしておくと環境が変わった時に .env ファイルだけを差し替えればいいので便利。

.env.sample をコピーして .env を作成。

なお、.env のデータベース接続情報 DB_CONNECTION はデフォルトで mysql になっている。なので、データベースに SQLite を使ったプロジェクトの場合は、下記のようなエラーが出る。

SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO) (SQL: select * from `posts` order by `created_at` desc)

その場合は、.env のデータベースに関する記述を mysql から sqlite に変える必要がある。

暗号キー作成

.env 新規作成したところで再び

$ php artisan serve --host 192.168.10.10 --port 8000
=>>>
RuntimeException
No application encryption key has been specified.

今度は、「アプリケーションキーがない」と怒られた。