이룰수 없는 꿈을 꾸고 이길수 없는 적과 싸우며, 이룰수 없는 사랑을 하고 견딜 수 없는 고통을 견디고, 잡을수 없는 저 하늘의 별도 잡자. - 세르반테스

일상이야기

[vagrant] 윈도우 환경에서 가상서버 셋팅하기

별구르미 2023. 4. 24. 22:30

인강을 들으며 파이썬을 활용하여 크롤링을 배웠는데, 해당 수업에서 몽고DB에 데이터를 저장하는 것을 익혔어요.

아직은 좀 이해가 안 가는 부분이 많네요. 

그래도 배웠던 내용을 바탕으로 제가 사이트 하나를 만들고 있는데 활용했어요. 

작업중인 사이트의 부족한 부분이 좀 있어서 마저 마무리 지을려고 작업 도중 몽고DB를 도커 내 우분투에 설치할 필요가 있어 설치를 하던 도중 systemctl 이 동작을 안하는 상황이 발생했습니다. 

삭제하고 재설치해도 동작을 안 했어요.

그래서 부랴부랴 4-5년전에 이용했던 vagrant 를 다시 셋팅하기 시작했어요.

도커를 2년정도 사용하다보니 편해져서 도커처럼 vagrant add box 우분투를 했는데 생각해보니 시간이 다소 걸릴 것 같아서 빠르게 하기 위해 이전에 사용했던 homestead 를 이용하려고 했는데 버전이 낮아서 업데이트를 해야한다고 나왔어요.

 

1. vagrant 설치.

https://developer.hashicorp.com/vagrant/downloads

 

Install | Vagrant | HashiCorp Developer

Explore Vagrant product documentation, tutorials, and examples.

developer.hashicorp.com

2. VirtualBox 설치.

https://www.virtualbox.org/wiki/Downloads

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.1 packages, see Virt

www.virtualbox.org

3. Git 설치

https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

위 3가지가 설치되어야 합니다. 

위 3가지 모두 설치하셨다는 가정하에 아래처럼 셋팅 잡아줍니다. 

 

저의 경우에는 PHP Laravel 기반으로 개발을 하고 있기에 좀 더 편한 homead를 다운받아 설치할 예정입니다. 

 

Step 1. 윈도우 명령프롬프트에서 아래 처럼 해주세요.

C:\Users\계정명> vagrant add box Larave/homestead

Step 2. 어느 환경에서 작업할 건지 물어보는 질문이 나옵니다. 

1) parallels
2) virtualbox
3) vmware_desktop

나오는 항목은 다르게 나올거에요. 저도 이번에 설치할 때 순서와 항목이 다르게 나왔는데 캡쳐를 못했어요. 

저렇게 나오면 전 virtualbox 를 설치했으니까 2를 입력합니다. 

그이후 설치가 진행됩니다. 

 

Step3. 시작메뉴에서 git bash를 실행합니다.

Step 4. homestead를 다운 받으실 위치로 이동합니다. 저의 경우는 사용자 디렉토리로 이동했습니다. 

$ cd ~

Step 5. git 명령어를 이용하여 homestead 를 clone 하겠습니다. 

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

위와 같이 하면 Homestead 라는 디렉토리 생성되면서 해당 디렉토리 내 git 저장소로부터 파일이 다운로드 됩니다.

 

Step 6. init.sh를 실행하여 homestead.yaml 파일을 생성합니다.

$ bash init.sh

Step 7. Homestead.yaml 편집합니다.

: 항목에는 ip 및 메모리 cpu 코어 와 인증키 및 마운트할 디렉토리 설정 등을 할 수 있으며, 매핑되는 디렉토리와 nginx 설정 시 도메인으로 연결 가상의 도메인 설정까지 다 할 수 있습니다. 

매핑 디렉토리는 다른 드라이브의 디렉토리로 잡아도 됩니다. 

자세한 내용은 아래 접어둔 내용을 확인해보세요.

더보기

folders:
    - map: E:\test
      to: /data/test

 

sites:
    - map: ftptest.mgkim.co.kr
      to: /data/ftptest
    - map: study.mgkim.co.kr
      to: /data/study/myproject/public

      php: "7.4"

 

databases:
    - homestead
    - laravel

 

features:
    - mysql: true
    - mariadb: false
    - postgresql: false
    - ohmyzsh: false
    - webdriver: false

 

ports:
    - send: 8000
      to: 8000
    - send: 3000
      to: 3000

서버가 실행될 때, 포트포워딩 및 DB 도 생성됩니다. 

그래서 Laravel 환경을 구축할 때는 Homestead 를 활용합니다. 

 

Step 8. 서버를 이제 띄우겠습니다. (git bash 환경의 homestead 디렉토리 내에서 명령어 입력하세요.)

$ vagrant up /* 서버 실행 시, */
$ vagrant reload --provision /* 환경파일 변경 시, 서버 재시작 */
$ vagrant halt /* 서버 셧다운 시 */

서버를 띄우는 화면이 git bash 화면에 나옵니다. 

서버에 접속하시려면 아래 처럼 입력하면 됩니다.

$ vagrant ssh

ssh 로 접속을 하면 됩니다. 이 때, 키가 필요하기에 인증키 생성을 필수로 진행해주세요. 

이것으로 윈도우 환경에서 가상서버 설치 과정 설명을 마칩니다. 

 

원래 몽고DB 설치 관련해서 설명을 적으려고 했는데, 이 내용을 먼저 포스팅하지 않고서는 할 수가 없어 적기 시작했는데 분량이 좀 되네요. 그래서 이어서 다른 포스트에 적겠습니다.

 

Homestead 로 설치를 하면 서버내 기본적으로 Nginx 와 PHP-FPM 과 Mysql 이 설치됩니다. 

DB와 Nginx 의 sites-enable 등등 설정해야하는 부분도 기본적으로 셋팅이 다 되기에 개발자 입장에서는 별도 설정 없이 바로 이용해볼 수 있어요. 

 

이상 본 포스팅은 이렇게 마칩니다.