Homesteadに複数のLaravelをインストールして環境構築する方法

 以前、ローカルに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環境を構築する方法を備忘録も兼ねて紹介させていただきました。

 てことで、今回はここまで!また!

お仕事のご相談・ご依頼
お気軽にお問い合わせください!

お仕事の依頼はこちら

シェアありがとうございます!

タグ
laravel PHP

著者プロフィール

Taka

東京、奄美大島を拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。いろいろな人の話しを聞くのが好きなので、このブログを通して多くの人と繋がりが出来たら嬉しいです。noteとInstagramもやっているのでフォローしてくれたらありがたいです!

人気記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です