1. TOP
  2. web
  3. php
  4. laravel
  5. Laravelプロジェクトごとに環境構築

Laravelプロジェクトごとに環境構築

|

composer install で解決

このエラーは、composer install で一発で解決する。なお、Composer のインストールとは全く別の作業。

($ cd code)
$ composer install
  
>>>
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Finished: success: 75, skipped: 0, failure: 0, total: 75
Package operations: 81 installs, 0 updates, 0 removals

Generating optimized autoload files

Package manifest generated successfully.

ここで何が行われたかというと

コンポーザリポジトリにパッケージ情報をロードする

ロックファイルから依存関係(require-devを含む)をインストールする

最適化された自動ロードファイルの生成 

> > > パッケージマニフェストが正常に生成されました。

再び上記ブログより。

コマンド入力後に諸々のファイルダウンロードが始まり、最終的に 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

500 エラー

ここで改めてwebサーバーを起動させる。

$ php artisan serve --host 192.168.10.10 --port 8000
Laravel development server started: <http://192.168.10.10:8000>

今度はwebサーバーは起動したが、500エラーが出た。

gitignore されてGit管理から外れているため .env は新規作成する必要がある。また、データベース設定なども、プロジェクトに合わせて修正しなくてはいけない。

database/database.sqlite を作成(データベースに sqlite を使用していた場合)

$ touch database/database.sqlite

.env.example から .env を作成

$ cp .env.example .env

mysql から sqlite へと、 .env を修正(データベースに sqlite を使用していた場合)

DB_CONNECTION=sqlite

アプリケーションキーの生成

次にインストール後に行うべきなのは、アプリケーションキーにランダムな文字列を設定することです。ComposerかLaravelインストーラを使ってインストールしていれば、php artisan key:generateコマンドにより、既に設定されています。

Laravel 5.8 インストール > アプリケーションキー

git clone したので、アプリケーションキーを新たに生成する必要がある。

$ php artisan key:generate
Application key set successfully.

新しくキーを作り直したので、キャッシュを無効にする。

Laravelさんは、Apacheを再起動したとしても、内部のキャッシュが残っててしまって、更新したプログラムをうまく反映してくれない時がある。キャッシュクリア系の方法をまとめた。

Laravel キャッシュクリア系コマンドなど

$ php artisan config:clear
Configuration cache cleared!

マイグレーションを実行。

$ php artisan migrate
>>>
Migration table created successfully.
Migrating: 2020_01_21_222925_create_posts_table
Migrated: 2020_01_21_222925_create_posts_table (0.01 seconds)

ようやく、ブラウザへの表示に成功!

丸一日かけて、何とか流れはつかめた気がする。別マシーンで、同じ手順を踏めば、まったく同じLaravel開発環境が複製できるということかな。これから試してみる。

冒頭にも書いたが、上記長々と書いてきたプロジェクトごとにHomesteadをインストールする方法では、プロジェクトが増えるに従ってディスク容量を食ってしまう。やはり、全プロジェクトで同じHomestead Boxを共有する方法がベターと思われる。そちらの方法は、こちらに別記事で書きました。

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