vagrant

homestead & vagrant 설치 및 재설치

먹세 2018. 5. 23. 11:01

homestead & vagrant 환경을 사용하다가 재설치를 해야하는 경우가 있다.

우선 아래 버전 기준으로 기술하겠다.

#vagrant --version

Vagrant 2.0.2


기존에 설치되어있던 vagrant를 깔끔하게 삭제하고 다시 설치해야 한다. 안그럼 폴더 동기화 기능등 오류 발생..

~/.vagrant.d 폴더 자체를 삭제한다.

~/VirtualBox VMs 폴더 삭제.


아래는 참고사항..


#vagrant box list

laravel/homestead (virtualbox, 6.0.0)


우선 vagrant 재설치시에는 새로 vagrant box add 해서 다시 다운로드 받을 필요가 없다. 

vagrant box update 하거나 아예 새로 설치할때만 add로 다운받으면 됨 (다운이 오래걸림)



#vagrant box list 

로 설치되어있는 vagrant box를 확인한다.


#ls ~/.vagrant.d/boxes

vagrant box가 다운로드 되는 위치

위 경로 안에있는 box 삭제


#ls ~/.vagrant.d/tmp

vagrant up 구동시 임시공간으로 사용하는 위치

구동에 이상이 없으면 폴더가 비어있을것이고, 이상이 생기면 잔여파일들이 남아있을것이다. 수동으로 삭제해준다.


#ls ~/VirtualBox VMs/

vagrant up 구동시 실제로 사용하는 virtualbox 위치

여기에 있는 box들을 삭제


Git bash 를 실행한다. 접속하면 아래 경로일 것이다.

#cd ~/

Homestead를 설치할 위치에서 시작한다.


#vagrant box add laravel/homestead --clean

끝에 --clean은 잔여 파일들을 깨끗하게 삭제해주고 다시 설치한다.

vagrant 재설치시 사용.

위 명령어로 최신 버전의 vagrant box를 알아서 내려받아준다.


1) hyperv

2) virtualbox

3) vmware_desktop


2번을 눌러서 virtualbox 로 다운로드

여기서 다운받는데 시간이 꽤 걸릴것이다.. 3~4시간..


#vagrant init

으로 vagrant 초기화 해준다.


virtualbox, 6.0.0 버전부터 Vagrantfile 설정이 변경되었다.


192.168.10.10 IP를 잡기 위해서는 Vagrantfile 에서 

config.vm.network "private_network", ip: "192.168.10.10" 

주석을 풀고 IP를 세팅한다.


#cd ~/Homestead

#bash init.sh 

로 Homestead.yaml 파일을 생성해준다.

yaml 파일을 열어서 folders 와 sites, port 등을 세팅해준다.



windows 에서 host를 설정해준다

C:\Windows\System32\drivers\etc\hosts

파일을 열어서

192.168.10.10  mydomain.dev

를 추가.


ssh key를 생성한다.

#mkdir ~/.ssh

#ssh-keyget -t rsa

위를 실행했을때 재설치의

경우 이미 키가 만들어져있기 때문에 덮어쓸것인지 물어본다. 덮어쓴다.




이후, vagrant ssh로 들어가서

ifconfig 했을때 192.168.10.10 네트웍이 안잡히는 경우가 있다. 그럴땐 아래처럼 해결.


#sudo apt-get install ifupdown

후에 

#vagrant up --provision

#vagrant ssh

#ifconfig 

해보면 192.168.10.10 네트웍이 올라왔을것이다.



======================================================


laravel/homestead 6.0.0 


버전문제인지 기존 5.2.0 에서 6.0으로 업그레이드 했는데 폴더 동기화부터 잘 안된다.

그래서 다시 다운그레이드..


vagrant 관련 폴더 삭제.

~/.vagrant.d 폴더 자체를 삭제한다.

~/VirtualBox VMs 폴더 삭제.


#vagrant box add laravel/homestead --box-version 5.2

#ssh-keygen -t rsa

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

#cd Homestead

#vi Homestead.yaml

folders 설정

folders:

- map: ~/code/myproject

  to: /home/vagrant/code/myproject

#vagrant up


만약 Homestead.yaml 을 수정하게 되면

포트 수정, sites 등 수정하면

#vagrant halt

#vagrant up --provision

--provision 해야 한다고 되어있으나 걍 vagrant up 만 해도 수정사항 적용 되는듯.

provision을 하면 /etc/nginx/modules-available/ 안에 있는 호스트 파일들이 초기화되므로 백업 해놓고 해야 한다.

#vagrant up  만 해도 Homestead.yaml 수정사항이 적용된다.


참고로 vagrant 환경에서 date.timezone KST 설정시

phpinfo(); 에서 php.ini 파일경로가 /etc/php/7.2/fpm/php.ini 로 되어있음

그러나 /etc/php/7.2/cli/php.ini 를 사용하는듯? ..

cli 폴더안에 있는 php.ini 에서

date.timezone = Asia/Seoul

로 변경 후 sudo systemctl restart nginx 해준다.








반응형