グローバルなHomesteadでLaravel環境構築
これは、最初のアプリ立ち上げの時に設定したアプリケーションキー(暗号キー)が、git clone した場合は引き継がれないため。
git clone したLaravelプロジェクトの場合は、アプリケーションキーを新たに生成する必要がある。
$ php artisan key:generate Application key set successfully.
キーの作成に成功。.env を見ると、APP_KEYに、新たにランダムな文字列が追記されている。
APP_KEY=base64:ryoNJuZHxxxxxxhmUamxxxxxxxxDb8HN1PHxxxxxEPc=
新しくキーを作り直したので、キャッシュを無効にする。
これでOKやろ!と、再びwebサーバー起動させようとするが、
SQLSTATE[HY000]: General error: 1 no such table: posts (SQL: select * from “posts” order by “created_at” desc)
「そんなテーブルない」と怒られた。マイグレーションしてデータベースを更新(というのか?)。
$ php artisan migrate Migration table created successfully. Migrating: 2020_01_21_222925_create_posts_table Migrated: 2020_01_21_222925_create_posts_table (0.02 seconds)
マイグレーションした後は、ブラウザ表示に成功!!
目次
補足 / –no-plugins オプション
git clone Laravelプロジェクトを展開した場合は、.env と Application key の作成、そして composer install が必要。
composer install した時に
Could not delete /home/vagrant/code/techacademy_chatabout/vendor/kylekatarnls/upd
ate-helper/src/UpdateHelper:
というエラーが出た時は、オプションをつけて
$ composer install --no-plugins
とすれば成功した。
–no-plugins については、こちらの記事で納得。
それらを防止するためにcomposer内の無関係なスクリプトを無効にする処理を入れておけばよいそうな。
ディスク容量の問題は?
なお、起動中の仮想マシンは ~/VirtualBox VMs フォルダにある。
$ ls -la ~/VirtualBox\ VMs/ drwx------ 6 hideyo1 staff 192 3 2 14:19 MyCentOS_default_1582792352148_46988 drwx------ 7 hideyo1 staff 224 3 2 14:09 MyCentOS_dotLocalDevEnv_default_1566336063765_44428 drwx------ 6 hideyo1 staff 192 3 2 19:08 homestead
今回作成したHomestead仮想マシンの容量は4.6GB。
$ du -sh ~/VirtualBox\ VMs/homestead/ 4.6G /Users/hideyo1/VirtualBox VMs/homestead/
Homesteadをプロジェクトごとにインストールするやり方では、「4.6 x プロジェクト数」GBという事で、あっと言う間にディスクいっぱいになってしまう。だから、Homesteadをグローバルにインストールして各プロジェクトで共有する今回のやり方がベターだろう。
ただし、不要な仮想マシンは vagrant destroy すれば ~/VirtualBox VMs フォルダから削除されてディスク容量は解放される。そして、再びその仮想マシンが必要になったら、vagrant up したら、2〜3分で構築される。
なので、各プロジェクトごとにインストールしたHomestead環境を残しておいてもディスクを圧迫することはない。
vagrantすごいな。
無駄なVagrant Box の整理については、こちらも参考にしました。