LoginSignup
9

More than 5 years have passed since last update.

【Laravel 環境構築】Laravel5.6 + Vagrant + VirtualBox + Homestead

Last updated at Posted at 2018-02-22

Laravel環境構築

内容紹介

⓪Laravel環境構築における前提条件
①Homesteadのboxをadd
②Homesteadをgit clone
③Homestead.yamlを作成
④Homestead.yamlを編集
⑤Vagrantでlaravelをダウンロード
⑥ブラウザで確認
⑦補足

⓪Laravel環境構築における前提条件

バージョン

Laravel 5.6.0 ( 2018.02.07 Release )
homestead 5.1.0

環境構築 日時

2018.2.21

前提

vagrantとvirtualBoxはインストール済み
ssh鍵は作成済み(~/.ssh/id_rsa ~/.ssh/id_rsa.pub)

ゴール

ブラウザで、192.168.10.10 を叩いた時に、laravelのアプリが立ち上がる

手動で作成するディレクトリ

~/laravel_environment
~/laravel_environment/code

※Vagrant(ゲストOS)ではなくホストOSに作成します。
※パスやディレクトリ名に関しては必要に応じてご変更下さい。

①Homesteadのboxをadd

まずは、初めにhomesteadのboxをインストールします。

今回作業をするディレクトリの作成

$ cd ~
$ mkdir laravel_environment
$ cd laravel_environment

vagrant box add laravel/homestead

選択が出るので、virtualbox(3番)を選択します。
初めは20分くらいかかります。(すでにaddしてある方は不要です)

$ vagrant box add laravel/homestead
==> box: Loading metadata for box 'laravel/homestead'
    box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'laravel/homestead' (v5.1.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/5.1.0/providers/virtualbox.box
==> box: Successfully added box 'laravel/homestead' (v5.1.0) for 'virtualbox'!
$

②Homesteadをgit clone

ディレクトリの作成

$ mkdir code
$ cd code

①で作成したディレクトリの下にcodeを作成した状態です。
~/laravel_environment/code

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

$ git clone https://github.com/laravel/homestead.git Homestead
Cloning into 'Homestead'...
remote: Counting objects: 2773, done.
remote: Total 2773 (delta 0), reused 0 (delta 0), pack-reused 2773
Receiving objects: 100% (2773/2773), 538.26 KiB | 149.00 KiB/s, done.
Resolving deltas: 100% (1644/1644), done.
Checking connectivity... done.
$

これで、~/laravel_environment/code/Homestead が新しく作成されています。

③Homestead.yamlを作成

cloneしたHomesteadの中で、bash init.shを実行し、Homestead.yamlを作成します。

移動

$ cd Homestead/

bash init.sh

$ bash init.sh
Homestead initialized!
$

成功のメッセージ表示されて
~/laravel_environment/code/Homestead/Homestead.yaml が新しく作成されています。

④Homestead.yamlを編集

編集後のHomestead.yaml

Homestead.yaml
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/laravel_environment/code
      to: /home/vagrant/code

sites:
    - map: 192.168.10.10
      to: /home/vagrant/code/Laravel/public

databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp

差分

デフォルトのHomestead.yamlをあらかじめコピーして置き、編集後のHomestead.yamlと比べると下記の通りになります。

差分を表示
$ diff -u Homestead.yaml.20180221 Homestead.yaml
--- Homestead.yaml.20180221 2018-02-21 22:09:04.000000000 +0900
+++ Homestead.yaml 2018-02-21 22:13:25.000000000 +0900
@@ -10,12 +10,12 @@
     - ~/.ssh/id_rsa

 folders:
-    - map: ~/code
+    - map: ~/laravel_environment/code
       to: /home/vagrant/code

 sites:
-    - map: homestead.test
-      to: /home/vagrant/code/public
+    - map: 192.168.10.10
+      to: /home/vagrant/code/Laravel/public

 databases:
     - homestead
$

⑤Vagrantでlaravelをダウンロード

まず、vagrant upを実行します。
次に、vagrant sshをします。

$ vagrant ssh
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-112-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 packages can be updated.
0 updates are security updates.

vagrant@homestead:~$

vagrant@homestead:~$ cd /home/vagrant/code

vagrant@homestead:~/code$ composer create-project laravel/laravel --prefer-dist Laravel
Installing laravel/laravel (v5.6.0)
  - Installing laravel/laravel (v5.6.0): Downloading (100%)

(以下省略)

ゲストOSに、/home/vagrant/code/Laravel が作成される。
ホストOSに、~/laravel_environment/code/Laravel がシンクされている。

⑥ブラウザで確認

ブラウザで、192.168.10.10 を打ち込み確認してみます。

laravel.png

きちんと表示されることができました。
めでたしめでたし。

⑦補足

No input file specified.

もしも画面に No input file specified. とメッセージが表示されてしまう方は、
ディレクトリの名前やパスの設定と、 Homestead.yaml の設定などを見直しが必要かもしれません。
もし修正したら、vagrant reload もしくは vagrant provision を実行することを忘れないで下さい。

ディレクトリcodeについて

Homestead.yaml を作成した時にデフォルトで記載されている「code」というディレクトリですが
5.4 までは、Code (先頭大文字)
5.5 からは、code (先頭小文字) に変更されています。

現在は5.6なのでcode (先頭小文字) が正しいです。
https://readouble.com/laravel/5.4/ja/homestead.html
https://readouble.com/laravel/5.5/ja/homestead.html

ipではなくホスト名で表示されるようにしたい

※今回はブラウザでip叩いて表示されるようにしましたが、もしもホスト名(URL)の方が良い方は、/etc/hots で、IPとホスト名をひも付けて下さい。
そのあと、Homestead.yaml
map: 192.168.10.10 の部分を
map: hogehoge.com などに変更下さい。

その他参考URL

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9