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
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
を打ち込み確認してみます。
きちんと表示されることができました。
めでたしめでたし。
⑦補足
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