【Laravel 환경 구축】Laravel5.6 + Vagrant + VirtualBox + Homestead

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

①에서 작성한 디렉토리 아래에 코드를 작성한 상태입니다.~/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를 입력하여 확인해 봅니다.



제대로 표시될 수 있었습니다.
죄송합니다.

⑦ 보충



No input file specified.



화면에 No input file specified.라는 메시지가 표시되는 경우,
디렉토리의 이름이나 패스의 설정과, Homestead.yaml 의 설정등을 재검토가 필요할지도 모릅니다.
만약 수정하면, vagrant reload 혹은 vagrant provision 를 실행하는 것을 잊지 말아 주세요.

디렉토리 코드 정보



Homestead.yaml을 만들 때 기본적으로 나열된 "code"라는 디렉토리입니다.
5.4까지는 Code(선두 대문자)
5.5부터는 code(첫 번째 소문자)로 변경되었습니다.

현재는 5.6이므로 code (선두 소문자)가 정확합니다.
ぇtps://레아도 bぇ. 코 m/ぁらゔぇl/5. HTML
h tps : // 레아도 bぇ. 코 m/아라ゔぇl/5. HTML

ip 대신 호스트 이름으로 표시하고 싶습니다.



※이번은 브라우저로 ip 두드려 표시되도록 했습니다만, 만약 호스트명(URL)의 쪽이 좋은 쪽은, /etc/hots 로, IP와 호스트명을 끈 붙여 주세요.
그 후, Homestead.yamlmap: 192.168.10.10 의 부분을map: hogehoge.com 등으로 변경하십시오.

기타 참고 URL

좋은 웹페이지 즐겨찾기