이제 VirtualBox를 이용하여 가상 머신을 생성하고 이 안에 운영체제를 설치하고 개발 환경을 만들 차례입니다.
vagrant 는 위의 작업을 자동화 해주는 기능을 제공하며 홈스테이드는 이 기능을 이용하여 라라벨의 개발 환경을 가상 머신에 미리 구성해 놓은 애플리케이션입니다.
vagrant 는 커맨드 방식으로 사용해야 하므로 시작 메뉴에서 실행을 선택하여 cmd.exe 를 입력하여 윈도의 커맨드 창을 띄워서 진행합니다. Mac OS X 나 리눅스 사용자는 터미널을 띄우면 됩니다.
라라벨 box 생성
Box 는 vagrant 에서 사용할 수 있는 패키지 포맷으로 특정 목적에 맞도록 미리 생성된 가상 머신 이미지를 의미합니다.
필요한 박스를 검색하려면 vagrant 제작사의 박스 공유 페이지(https://atlas.hashicorp.com/boxes/search)에서 할 수 있습니다.
독자들의 PC내 vagrant 에 박스를 추가하려면 box add 명령어를 사용하면 됩니다. cmd.exe 에 다음 vagrant 명령어를 입력하여 라라벨 박스를 만듭니다.
가상 머신의 종류를 물어보면 1번 virtualbox 를 선택하고 엔터를 입력합니다.
다운로드가 시작되는데 꽤 오랜 시간(30분 이상)이 소요되므로 차를 한잔 하고 와도 됩니다.
설치가 완료되면 "box : Successfully addedd box 'laravel/homestead' 라는 메시지가 표시됩니다.
환경 구성
이제 가상 머신 생성과 설정은 끝났고 Homestead 로 개발 환경을 구성할 순서입니다. 윈도 사용자는 시작 메뉴에서 Git 프로그램 그룹을 찾아서 Git-Bash 를 실행하며 OS X 사용자는 터미널을 열어서 bash 쉘을 띄웁니다.
윈도 프로그램에 Git-Bash 가 없을 경우 git 설치 폴더로 이동한 후에 Git Bash.lnk 를 실행합니다.
cd 명령어로 homestread 프로젝트를 다운받을 경로로 이동합니다. 이 디렉터리에서 앞으로 가상 머신을 구동하고 종료하게 되며 저는 사용자 홈 디렉터리인 c:\Users\lesstif\ 폴더에서 작업을 진행하였으며 사용자의 홈 디렉터리는 ~/ 로 표현할수 있습니다.
윈도 사용자는 다른 경로에 홈 스테드를 다운로드할 경우 폴더 경로 구분자를 cd d:/laravel 처럼 유닉스 형식 구분자(/) 를 사용해야 하는 것에 주의하세요.
다운받을 경로로 이동했다면 git 으로 소스를 체크 아웃 합니다.
이제 cd Homestead 명령으로 폴더로 이동하고 릴리스 태그를 확인하기 위해 다음 명령어를 실행합니다.
마지막 버전(예: v5.0.1) 을 확인하고 해당 버전을 체크아웃합니다.
checkout 이 되어 있지 않으면 다음과 같은 에러가 발생합니다.
Homestead settings file not found in C:/Users/lesstif/Homestead
이제 bash init.sh 명령어를 입력하면 사용자의 홈 디렉터리에 .homestead 폴더가 생성되고 초기 설정 파일이 생성됩니다.
이제 에디터로 사용자의 홈 디렉터리의 .homestead 폴더에 있는 Homestead.yaml 를 열어 봅시다.
IP 와 메모리 설정
먼저 맨 위를 보면 다음과 같은 내용이 있습니다.
- ip : 가상 머신의 ip 주소으로 웹 브라우저로 테스트할 때나 가상 머신에 ssh 로 연결할 때 이 ip에 연결하면 되며 기본 값은 192.168.10.10 입니다.
- memory : 가상 머신이 사용하는 메모리로 메가 단위이며 기본 설정은 2G입니다.
- cpus : 가상 머신에 할당한 cpu 의 갯수로 기본 설정은 1입니다.
- provider : 가상 머신에 연결하기 위한 vagrant provider 로 virtualbox 를 사용하고 있습니다.
ssh 키 쌍 설정
가상 머신에 연결할 때 사용할 ssh 키쌍을 설정하며 기본 값은 .ssh폴더내에 id_rsa(개인키) 공개키(id_rsa.pub) 파일입니다.
키 쌍이 없는 독자들은 git-bash 에서 다음 명령어를 사용하여 키 쌍을 생성하면 되며 -C 옵션 뒤에는 사용자의 이메일 주소를 입력하면 됩니다.
"Enter passphrase :" 프롬프트에는 개인키를 보호할 암호를 입력하며 그냥 엔터를 치면 개인키를 암호로 보호하지 않으므로 유출될 경우 보안 문제가 발생할 수 있습니다.
공유 폴더 지정
folders 키워드는 가장 중요한 설정중 하나로 가상 머신과 공유할 디렉터리를 지정합니다. 기본 값인 ~/Code 는 사용자의 홈 디렉터리 밑에 Code 디렉터리를 의미하며 윈도 사용자일 경우 C:\Users\로그인명\Code 가 됩니다.
보통 Code 디렉터리가 없으므로 윈도 탐색기 또는 Mac OS 의 Finder 를 사용하여 홈 디렉터리 밑에 만들어 주어야 합니다.
map 에 설정한 디렉터리가 to 에 지정된 가상 머신의 디렉터리 경로와 매핑한다는 의미로 탐색기에서 C:\Users\로그인명\Code 에 laravel 이라는 디렉터리를 생성하면 자동으로 가상 머신의 /home/vagrant/Code/laravel 가 생성이 됩니다.
이 기능을 사용하여 윈도에서 에디터로 작성한 파일은 저장과 동시에 가상 머신에 반영되므로 FTP 나 git 등으로 웹 서버에 파일을 반영할 필요가 없습니다.
웹 사이트 설정
sites 키워드는 웹 서버의 가상 호스트(Virtual Host)와 DocumentRoot 를 지정하는 중요한 키워드입니다. map 에 있는 도메인 이름으로 요청이 들어오면 to 에 있는 경로로 서비스를 하겠다는 의미입니다.
즉 브라우저에서 http://homestead.app 로 연결하면 웹 서버는 /home/vagrant/Code/Laravel/public 에 있는 컨텐츠를 서비스하게 됩니다.
homestead.app 은 DNS(Domain Name Service) 에 없으므로 웹 브라우저가 찾을 수 있도록 고정 hosts 파일에 등록해야 합니다. OS X와 리눅스는 /etc/hosts, 윈도는 C:\Windows\System32\drivers\etc\hosts 파일을 열어서 다음 내용을 추가해 줍니다. (관리자 권한이 필요합니다.)
sites 항목에서는 또 페이스북이 개발한 PHP 가상 머신인 HHVM 의 설정 여부를 지정할 수 있으며 다음과 같이 hhvm : true 를 설정하면 php-fpm 엔진대신 HHVM 을 사용하게 됩니다.
여러 개의 가상 호스트가 있을 경우 가상 호스트별로 HHVM 또는 php-fpm 사용 여부를 지정할 수 있습니다.
HHVM 사용시 phpinfo(); 함수를 호출하면 HipHop 이라는 문자만 출력하게 되므로 자세한 정보를 얻고 싶은 독자는 github 에서 hhvminfo.php (http://git.io/3dQYYg) 를 다운받으면 됩니다.
Box 구동/중지
이제 설정이 완료되었습니다. 박스를 구동하려면 먼저 Homestead 폴더로 이동합니다.
.homestead 폴더가 아닌 Homestead 폴더로 이동해야 합니다.
이제 Homestead 폴더에서 vagrant up 명령어를 사용하면 됩니다.
다음 에러가 발생하며 박스가 구동되지 않는다면 ssh 키 쌍이 생성되지 않은 것입니다. 위 항목의 ssh 키 쌍 생성 여부 및 사용자의 홈 디렉터리의 .ssh 폴더밑에 id_rsa.pub 파일이 있는지 확인해 보세요.
박스를 일시 중지하려면 vagrant suspend 명령어를 사용하면 됩니다.
중지된 박스를 재개하려면 vagrant up 명령어를 사용할 수 있습니다.
박스를 종료시키고 가상 머신을 끄려면 vagrant halt 명령어를 사용하면 됩니다.
구동/중지 스크립트
vagrant up 과 vagrant halt 명령어는 Homestead 폴더에서 명령행 방식으로 실행해야 하므로 불편할 수 있으므로 윈도 사용자라면 다음과 같이 batch 파일을 작성하여 편리하게 사용할 수 있습니다.
독자들의 Homestead 환경에 맞게 경로를 수정한 후에 각각 vup.bat, vhalt.bat 로 저장한 후에 PATH 가 걸린 폴더에 넣어 줍니다.
이제 cmd.exe 를 열고 임의의 경로에서 vup 명령어로 홈스테드를 구동하고 vhalt 명령어로 홈스테드를 중지할 수 있습니다.
가상 머신에 ssh 연결
가상 머신에 ssh 로 연결하려면 vagrant ssh 명령어를 사용하거나 아니면 직접 ssh vagrant@192.168.10.10 에 연결하면 됩니다. ssh 개인키대신 암호를 사용할 경우 로그인 암호는 vagrant 가 됩니다.
혹은 SecureCRT 나 putty 같은 GUI 기반의 ssh client 에 위의 로그인 정보를 설정하고 사용해도 됩니다.
이제 홈스테드 설정을 마쳤으니 데이타베이스에 연결해 보도록 하겠습니다.
출처 : https://www.lesstif.com/display/LIFE
'Web Programming > laravel' 카테고리의 다른 글
laravel 개발환경 > Vagrant 설치 및 설정 (0) | 2018.10.30 |
---|---|
laravel 개발환경 > 가상 머신과 vagrant 설치 (0) | 2018.10.30 |
laravel 개발환경 (0) | 2018.10.30 |
laravel 소개 및 장점 > 손쉬운 테스팅 (0) | 2018.10.30 |
laravel 소개 및 장점 > 국제화를 위한 지원 (0) | 2018.10.30 |