laravel開発環境構築(VirtualBox+Vagrant+Homestead)

laravel
laravel webアプリ レクチャー 全て

laravel+Vue.jsでwebアプリの開発を勉強しています。

学習の記録としてブログを書いていこうと思います。

今回はHomesteadのインストールについてまとめます。

Homesteadとは

公式サイト:https://readouble.com/laravel/5.7/ja/homestead.html

Laravelが公式に提供する開発環境のVagrant boxです。

Nginx WebサーバとPHP、MySQL、PostgreSQL、Redis、Nodeなどを含んだパッケージなので自分でそれらをインストールする必要がないので手軽に開発環境を作ることができました。

1) VitualBox+Vagrantの準備

VitualBoxのインストール

VirtualBoxはVitualBoxのホームページ上からパッケージをダウンロードしてください。

Vagrantのインストール

VagrantもVirtualBoxと同様に公式ホームページからパッケージをダウンロードしてください

2) HomesteadのVagrant boxをインストール

ターミナルを起動し、下記を入力する

//homeに移動
$ cd 

//vagrant boxの追加
$ vagrant box add laravel/homestead 

//確認
$ vagrant box list 
laravel/homestead  (virtualbox, 9.2.2-alpha1) //←追加される

vagrand boxのリストにlaravel/homestead (virtualbox, 9.2.2-alpha1)が追加されれば完了。

3) 作業ディテクトリを作成し、Homesteadをダウンロード

$ mkdir app

$ cd app

$ git clone https://github.com/laravel/homestead.git Homestead

今回はappとしていますが、作業フォルダ名は任意の名前をつけてください。Homesteadのダウンロードが完了するとHomesteadフォルダが作成されます。

//Homesteadフォルダができるので移動する
$ cd Homestead

//ブランチを切り替える
$ git checkout release

//初期化aliases、after.sh、Homestead.yaml が生成される
$ bash init.sh

4) 認証鍵の設定

認証鍵の存在を確認する

//homeディテクトリに移動
$ cd 

//認証鍵の存在を確認
$ ls -la I grep .ssh
//ある場合の表示
id_rsa
id_rsa.pub
//ない場合はこのような表示になる
ls: cannot access 'I': No such file or directory

ない場合は、認証鍵を作成する。

//Macのルートディテクトリ
$ ssh-keygen

Macのルートディテクトリでコマンドを実行すると/Users/ユーザー名/.sshに鍵(id_rsaとid_rsa.pub)が生成される。

5) Homestead設定ファイルの作成

今回はワークスペース用のディテクトリを作成し名前をcodeとします。また、laravelのプロジェクト名をprojectとします。

Homestead/Homestead.yamlを下記のように編集します。(部分を抜粋しています)

ip: "192.168.**.**" //IPアドレス
memory: 2048 //割り当てるメモリ
cpus: 2 //コア数
provider: virtualbox //VMのホスト

authorize: ~/.ssh/id_rsa.pub //SSH公開鍵の場所

keys:
    - ~/.ssh/id_rsa //秘密鍵の場所

//ローカルマシンとVMの間の同期(マウント)設定
folders:
    - map: ~/app/code //ローカルマシンのディテクトリ
      to: /home/vagrant/code //VMのディテクトリ
      type: "nfs" //マウントのタイプ

//VM上のディテクトリと「ドメイン」をマップ
sites:
    - map: homestead.test //アクセスするドメイン
      to: /home/vagrant/code/project/public //公開するディテクトリ

databases:
    - homestead0
省略

ハマったポイント

type: "nfs" などマウントのタイプを入力しないとマウントエラーが出ました。

6) /etc/hostsへの追記(ホスト名とIPアドレスを対応させる)

Macの場合はHomestead.yamlに設定されたIPアドレスとホスト名をhostsファイルに記入し、対応させます。

finder>移動>フォルダーへ移動>/etcと入力>hostsを検索

hostsファイルをエディタで開き、下記を追加する。

192.168.**.**  homestead.test

7) 仮想マシンの立ち上げ

VMを起動する前にマウント先となるワークスペース用ディテクトリを作成する。

//codeを作成
$ cd app
$ mkdir code

//Homestead.yalmがあるディテクトリに移動
$ cd
$ cd ./app/Homestead

//起動
$ vagrant up

//ログイン
$ vagrant ssh

Homestead.yamlの編集を反映させてい場合は-- provisionをつけて起動する。

$ vagrant up --provision

ハマったポイント

起動時にマウント先のディテクトリが存在してないとマウントに失敗しました。

8) Laravelのインストール

HomesteadのComposerをアップデート。

$ composer global update

Laravelプロジェクトを作成。

//ワークスペース用ディテクトリに移動
$ cd code 

//laravelプロジェクトの作成(プロジェクト名をprojectとした場合)
$ laravel new project
または
$ composer create-project laravel/laravel --prefer-dist project

projectフォルダが生成され、マウントされたローカルからもファイルを確認することができる。

http://IPアドレスまたはhttp://ホスト名でアクセスするとLaravelのトップ画面が表示されたら完了です。

お疲れ様でした。

エラーが出た時

入力したIPアドレスまたはホスト名が正しいかHomestead.yamlを確認してみてください!

今後の予定

Homesteadで複数のLaravelプロジェクトの作成についてもまとめようと思います。

タイトルとURLをコピーしました