以前、ローカルにHomestead環境を構築してLaravelをインストールする方法を紹介(下記記事参照)しましたが、今回はそのHomestead環境に複数のLaravelプロジェクトを構築する方法を備忘録も兼ねて紹介したいと思います。
環境
なお、今回の環境は以下の通りとなります。
今回の環境
- MacOS Catalina 10.15
- vagrant 2.2.6
- Laravel 5.8系
Vagrant Boxのシャットダウン
まずは、既存のboxが起動しているか以下のコマンドで確認しておきます。
### Boxの一覧表示
$ vagrant box list
もし、起動しているboxがあったら念のため一旦シャットダウンしておきましょう。
$ vagrant halt
Homestead.yamlの設定
続いて、Homestead.yamlの設定を見ていきます。
今回は1つのHomesteadに複数の環境を作るので、下記のように変更していきます。
今回は、Homeディレクトリに「homesstead-test」というディレクトリがあり、その配下に「code」というディレクトリがあると仮定します。そしてこの配下に2つのLaravel環境をインストールしていくので、まず、「laravel」というディレクトリを作成して、その配下に2つのプロジェクトを作成することにし、それぞれを「homestead1.test」、「homestead2.test」というドメインで運用するようにしたいと思います。
また、データベースも「sample1」と「sample2」というかたちで作成したいと思います。
上記の内容をHomestead.yamlに反映すると下記の通りとなります。
---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/homestead-test/code/laravel/sample1
to: /home/vagrant/code/laravel/sample1
- map: ~/homestead-test/code/laravel/sample2
to: /home/vagrant/code/laravel/sample2
sites:
- map: homestead1.test
to: /home/vagrant/code/laravel/sample1/public
- map: homestead2.test
to: /home/vagrant/code/laravel/sample2/public
databases:
- sample1
- sample2
features:
- mariadb: false
- ohmyzsh: false
- webdriver: false
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
hostsファイルの編集
続いて、Macのhostsファイルも編集します。
$ sudo vi /etc/hosts
hostsファイルを開いたら下記のコードを追記します。
192.168.10.10 homestead1.test homestead2.test
追記したら、「:wq」コマンドで保存します。
Laravelをインストールするディレクトリの生成
続いて、Laravelをインストールするディレクトリをあらかじめローカルに生成しておきます。
codeディレクトリに移動して、「sample1」、「sample2」というかたちでディレクトリを作成しておきます。
$ cd ~/homestead-test/code/laravel
$ mkdir sample1
$ mkdir sample2
Vagrant起動
Homestead.yamlの設定が完了したら、vagrantを起動します。
$ vagrant up
なお、古いデータが残っていて反映されない場合は下記のようにprovisionフラグも追記して実行しましょう。
$ vagrant up --provision
Laravelインストール
vagrantが起動したら、ssh接続をしてLaravelをインストールしていきます。
$ vagrant ssh
接続したら、「code」そしてその中に「laravel」さらにその配下に「sample1」と「sample2」というディレクトリができていると思うので、laravelディレクトリまで移動しておきます。
$ cd ./code/laravel
移動したら、その配下にlaravelをインストールしていきます。まずは下記のように「sample1」というプロジェクトを、続いて同様に「sample2」というプロジェクトも作成しておきます。
$ composer create-project --prefer-dist laravel/laravel sample1 "5.8.*"
インストールが終わると、ローカル環境の「~/homestead-test/code/laravel/sample1」と「~/homestead-test/code/laravel/sample2」の中にもプロジェクトファイルが格納されていると思います。
ブラウザでアクセス
ここまで終わったら、実際にブラウザにアクセスしてみます。sample1プロジェクトには「http://homestead1.test/」、sample2には「http://homestead2.test/」になるので、それぞれにアクセスしてLaravelの画面が表示されていれば問題なく環境構築ができています。
データベースも確認してみる
これで基本的にはhomesteadに2つにLaravelプロジェクトを作成することができました。データベースに関してもhomestead.yamlで設定した「sample1」と「sample2」というデータベースが出来ていると思うので確認してみましょう。
まずは、ssh接続した状態で下記コマンドでmysqlにログインします。
$ mysql -u homestead -p
この時、パスワードを聞かれると思うのですがHomesteadの場合デフォルトでは「secret」になっているので、そのように入力してください。
続いて、下記コマンドでデータベースを表示してみます。
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| homestead |
| #mysql50#lost+found |
| mysql |
| performance_schema |
| sample1 |
| sample2 |
| sys |
+---------------------+
8 rows in set (0.19 sec)
mysql>
「sample1」、「sample2」という2つのデータベースが問題なく出来ていますね。
まとめ
ということで、今回はひとつのHomesteadに複数のLaravel環境を構築する方法を備忘録も兼ねて紹介させていただきました。
てことで、今回はここまで!また!