Laravel入門 - Macに環境構築 -


MacにHomesteadを使用して仮想マシン上にLaravel環境する手順。

主要登場人物

VirtualBox

仮想マシン環境を提供してくれる。
例えばMac上に仮想マシンを起動して、その中ではWindowsを起動して使用する等。
今回はLaravelが走る仮想Ubuntuマシンを走らせてもらう。

Vagrant

VirtualBox、VMWARE、AWS等の仮想環境の構築等をコマンドベースで実行できるようにするツール。
今回は仮想Ubuntuマシンを構築・制御するのに使用する。
VirtualBoxをラップしてくれるイメージ。

Homestead

パッケージングを事前に済ませたLaravel公式のBox。(公式抜粋)
BoxとはVagrantのBoxのことであり、Laravelの開発に必要なOSやPHP、Nginxが入った状態で配布されている。
HomesteadがさらにVagrantをラップしているようなコンセプトになっている。
とはいえ、VagrantのBoxはVagrantコマンドでDLするし、Vagrantの設定ファイルであるVagrantfileをHomesteadで設定するような操作になっていて最初ちょっと立ち位置がわかりにくい…。

Composer

依存管理ツール。
ライブラリAをインストールする際に、Aが必要としているB、さらにはBが必要としているC,D…を自動的にインストールしてくれる。
今回は仮想Ubuntu上にLaravelフレームワークをインストールするのに使用する。

環境構築

Vagrantのインストール

公式サイトからDLしてインストールする

VirtualBox のインストール

公式サイトからDLしてインストールする

laravel/homestead boxをVagrantへ追加する

$ vagrant box add laravel/homestead

UbuntuOSにPHPやらNginx等Laravelをすぐに試せるVagrantBoxがDLされる。

HomesteadのDL

$ git clone https://github.com/laravel/homestead.git ~/Homestead
$ cd ~/Homestead
$ git checkout release
$ bash init.sh

この中にVagrantが使用するVagrantfileが含まれている。
そして、Vagrantfileは以降設定するHomestead.yamlの中を参照するように出来ている。

Homesteadの設定

Homestead.yamlを必要に応じて設定する。
今回はfoldersのmapとtoとsitesのmapとtoを編集。

foldersの方は仮想マシンとホストマシンとの間で共有されるフォルダのパスを設定する。
Homesteadで複数のプロジェクトを管理する場合はこの設定が増えていくイメージ。

sitesの方はドメインの設定。
mapにアクセスするとNginxはtoのディレクトリをルートディレクトリとする。

Homestead.yaml
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

# mapがホストマシン、toが仮想マシンのパス
# ホストマシンに指定したディレクトリが存在していること
folders:
    - map: ~/vagrantcode/Laravel/hello
      to: /home/vagrant/hello

sites:
    - map: homestead.hello
      to: /home/vagrant/hello/public

databases:
    - homestead

features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false

SSH鍵ファイルの作成(未作成の人は

$ cd ~/
$ ssh-keygen -t rsa

Vagrant2.2.6でVirtualbox6.1を認識させる

私が環境を構築した時点でのVagrant、VirtualBoxそれぞれのVersionが2.2.6と6.1だったのだが、Vagrantが上手にVirtualBox6.1を認識できなかった。
こちらを参考に認識させることが可能だった。

Vagrant Boxの実行

$ vagrant up

VirtualBoxを立ち上げて確認するとHomesteadのマシンが実行状態になっているのが確認できるはず。

ComposerによるLaravelプロジェクトの構築

仮想マシン上にはLaravelプロジェクト自体は構築されていないので、好きなプロジェクトを構築する。

sshで仮想マシンに接続後Homestead.yamlで設定したfoldersのパスと対応する場所にプロジェクトを構築する。
※↓の場合はhelloプロジェクト

$ vagrant ssh
$ cd /home/vagrant
$ composer create-project laravel/laravel --prefer-dist hello

動作確認

ここまで実行すれば、ホスト環境からブラウザでHomestead.yamlに設定したIPにアクセスすればLaravelの画面が見えるはず。

参考サイト

https://readouble.com/laravel/6.x/ja/homestead.html
https://qiita.com/7968/items/97dd634608f37892b18a
https://qiita.com/daichi87gi/items/d5da33c76295ee32a735
https://qiita.com/hkiri/items/7060a9caff306c973679

https://qiita.com/pugiemonn/items/bcd95a35c3ec7624cd61
https://qiita.com/you-me/items/b886dd0fc8e5047c4bc6
https://weblabo.oscasierra.net/vagrant/

https://blog.office-iwakiri.com/archives/mac-652
https://it.becrazy.jp/article/laravel-homestead-setting
https://qiita.com/oreo3@github/items/4054a4120ccc249676d9