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 のファイルも存在することになります。
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コマンドにより、既に設定されています。
git clone したので、アプリケーションキーを新たに生成する必要がある。
$ php artisan key:generate Application key set successfully.
新しくキーを作り直したので、キャッシュを無効にする。
Laravelさんは、Apacheを再起動したとしても、内部のキャッシュが残っててしまって、更新したプログラムをうまく反映してくれない時がある。キャッシュクリア系の方法をまとめた。
$ 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を共有する方法がベターと思われる。そちらの方法は、こちらに別記事で書きました。