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プロジェクトの作成についてもまとめようと思います。