2018/10/12
LaravelにはHomesteadというVagrant用のboxが用意されています。
これを入れるとLaravelの開発で必要なソフトをひとまとめにインストールできます。
今回はWindows7にHomesteadを使ってLaravelの環境構築をしていきます。
ちなみにHomesteadを使用すると仮想マシンのOSはUbuntu(ウブントゥ)になります。
Git Bashについて
Homesteadを入れるにあたって事前にインストールしておかないといけないソフトは3つあります。
- Vagrant
- Virtual Box
- Git for Windows
このうちVagrantとVirtual Boxは以前インストールをしました。
今回、追加でGit for Windowsをインストールします。
Git for WindowsをインストールするとGit Bashも一緒についてきます。
Homesteadを設定する際にはこのGit Bashを使います。
Git Bashとはコマンドプロンプトのようなコンソールで、LINUXやUNIXのBashと同様のコマンドが使えます。
Homesteadをインストールする際、初期設定をするためにBashコマンドでinit.shファイルを実行する必要があるのですが、その際にGit Bashが必要になります。
チュートリアル
実現したいこと
- Homesteadを使ってLaravelの開発環境を構築する
- Laravelのスタートページを表示させる
手順
セットアップをする
# ホームディレクトリ(C:\Users\ユーザ名\)で以下の作業を行う # vagrantにboxを追加 vagrant box add laravel/homestead # homesteadのgitレポジトリをHomesteadというディレクトリの中に作成する git clone https://github.com/laravel/homestead.git Homestead # 上記コマンドによって現ディレクトリ配下に、Homesteadというディレクトリが出来上がる。 # そのディレクトリに移動する cd /Homestead # 初期設定をするためのinit.shファイルを実行 bash init.sh # 上記コマンドによってホームフォルダ(C:\Users\ユーザー名\)に.homesteadという隠しフォルダができる # 隠しフォルダ内にHomestead.yaml というコンフィグファイルが作成されるので、内容を編集する cd ~/.homestead/ vi Homestead.yaml
Homestead.yamlを編集する
ip: "192.168.10.10" ←接続先のIPアドレス memory: 2048 ←割り当てメモリ cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub ←公開鍵の場所 keys: - ~/.ssh/id_rsa ←秘密鍵の場所 folders: - map: C:\homestead\laravel ← ローカルディレクトリ(ディレクトリを作成しておく) to: /home/vagrant/Code ← 仮想マシン上のディレクトリ sites: - map: homestead.app ←ホスト名(あとでhostsに登録する) to: /home/vagrant/Code/Laravel/public ←ドキュメントルートの場所 databases: - homestead
yamlファイルで編集するところは基本的には[folders:]の[-map:]にあるローカルディレクトリの箇所だけで問題ありません。
上の例でいくとWindows側でCドライブ直下に「homestead」と、そのフォルダの中に「laravel」のフォルダを作成することになります。
以下はyamlファイルについての簡単な説明です。
★「folders:」について
「map:」はWindows側のフォルダ、「to:」は仮想OS側のフォルダです。
上の例ではWindowsの「C:\homestead\laravel」というフォルダと仮想マシンのOS(Ubuntu)の「/home/vagrant/Code」フォルダが同じフォルダであるかのように振る舞います。
仮想OSのフォルダとWindows上のフォルダのペアを指定して、2つの環境から同じフォルダを参照できるようにしています。
★「sites:」について
ローカルドメインとフォルダの割り当てです。
ブラウザで「http://homestead.app」と入力すると「/home/vagrant/Code/Laravel/public」というフォルダの内容が表示されるようになります。
鍵を作る
#Homesteadディレクトリ上と同階層に.sshディレクトリ作成 mkdir ~/.ssh #.sshディレクトリに移動 cd ~/.ssh #鍵作成 #SSHで接続する為に鍵を作るが開発用なので適当に作る #2回パスワードの入力を問われますが、どっちも何も入力せずEnter ssh-keygen -t rsa -C <メールアドレス>
hostファイル
IPアドレスから仮想マシンに転送するために、hostsファイルを編集します。
Hostsファイルの場所はWindowsだと「C:\Windows\System32\drivers\etc\hosts」にあります。
yamlファイルに従って以下を追加します。
左がIPアドレス、右がホスト名(sitesのmap)になります。
192.168.10.10 homestead.app
Vagrant起動
# 最初の手順でホームディレクトリ直下にHomesteadというディレクトを作成した # そのディレクトリに移動してVagrantを起動させる cd ~/Homestead vagrant up
Laravelのプロジェクト作成
# vagrantにssh接続 vagrant ssh # 仮想マシン(Ubuntu)のローカル共有ディレクトリに移動 # yamlファイルの[folders:][to:]にあたる箇所 cd Code/ #composerをインストール curl -sS https://getcomposer.org/installer | php #プロジェクト作成 composer create-project laravel/laravel Laravel --prefer-dist
WEBブラウザでアクセス
仮想マシン(Ubuntu)が起動していることを確認して、
にアクセスする。
上のように表示されていれば、環境構築は完了です。
はまったところ
Vagrantが立ち上がらない
BIOSのVT-x(仮想化支援機能)が無効だったのでVagrant自体が起動しませんでした。
Vagrantを起動する場所が違う
Vagrantを起動する際にはホームディレクトリ( C:\Users\ユーザ名\ )直下にある「Homestead」ディレクトリの中に入って起動させます。
またyamlファイルで記述した(※「folders:」の「map:」にあたる箇所です)ローカルディレクトリも事前に作成しておかないといけません。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。