[Laravel] 라라벨 개발환경 구축하기 (feat. 홈스테드, 도커)
프레임워크 & 라이브러리/라라벨

[Laravel] 라라벨 개발환경 구축하기 (feat. 홈스테드, 도커)

이번 포스트에서는 라라벨의 개발환경을 구축해보도록 하자. [Laravel] 라라벨 프레임워크 시작하기에서 했던 것처럼 직접 php artisan serve 를 사용해서 로컬에서 서버를 돌려도 좋지만, 그건 일관성있는 개발환경이 될 수 없기 때문에 다른 방법을 써보는 것이 좋다. 라라벨에서 개발 환경을 구축하는 방법으로는 대표적으로 홈스테드도커가 있는데, 홈스테드의 경우 예전부터 써오던 방법이고, 도커로 사용하는 것은 추가된지 얼마 안 된것으로 생각된다.

Laravel Homestead

Homestead 는 주로 Windows 에서, Valet 의 경우에는 Mac 에서 사용한다만, 포스팅의 기준이 Windows 이기 때문에 이를 기준으로 작성한다. 먼저 홈스테드를 사용하기 위해서는 Vagrant, 그리고 VirtualBox, VMWare 등 가상화 소프트웨어가 필수인데, 우리는 VirtualBox 로 사용할 것이다. Hyper-V 보다는 이게 더 나은 선택이다.

Vagrant & VirtualBox

Vagrant 는 개발환경 등 가상화 환경을 구성할 때 미리 정의된 이미지를 사용하여 구성할 수 있도록 지원한다. 이를 사용하면 PHP 를 포함한 MySQL, NginX 등 라라벨을 개발하기 위한 기본적인 환경이 가상머신에 구축할 수 있다. 따라서 먼저 다운 받도록 하자, 참, 포스트에서는 VirtualBox 을 사용하며 버전 6 이상으로 설치해야 한다.

 

라라벨의 환경이 구성되어 있는 Vagrant Box 를 설치해줄 필요가 있는데, 아래의 명령어로 다운로드 할 수 있다. 박스의 이름은 laravel/homestead 다.

vagrant box add laravel/homestead
박스를 추가할 때 에러가 발생한다면 vagrant 가 설치된 폴더에서 curl 과 관련된 바이너리를 제거해보자.

홈스테드를 설치하는 방법은 두 가지가 있는데, 하나는 laravel/homestead 에서 레포를 복사하여 설치하는 방법과, 또 하나는 프로젝트에 개별 설치하는 것이다. 여기서는 개별 프로젝트에 설치하는 것을 해보도록 하자. 프로젝트에서 홈스테드를 설치한다.

composer require laravel/homestead --dev

그 다음 Windows 에서는 다음과 같이 처리하면 된다.

vendor\\bin\\homestead make

이렇게 되면 Homestead.yml 파일이 생성될텐데 아래처럼 생겼다. providers, ip 등이 주로 봐야할 설정이다.

ip: 192.168.10.10
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
    - ~/.ssh/id_rsa

이제 아래와 같이 Vagrant 를 실행하면 VirtualBox 에 가상머신이 생성될 것이며 위에 입력된 192.168.10.10 로 접속하면 올바르게 나타날 것이다. 이 과정에서 에러를 만나는 경우가 종종있는데, 이는 어느정도 검색을 통해 해결할 수 있을 것이다.

vagrant up

다만, 한가지 터무니없는 에러 중 하나는 EBook Reader 프로그램(교보 등)에 있는 저작권 관련 프로그램과 충돌하여 문제가 발생하는 경우가 있다는 점이다. 추가적으로 vagrant ssh 를 사용하면 구축된 가상머신에 접속할 수 있다.

Docker

도커를 사용하여 라라벨 개발환경을 구축할 수도 있다. Windows 에서는 Docker Desktop 을 사용하고 WSL2(Windows Subsystem for Linux 2)를 사용한다. 따라서 윈도우 프로그램/기능에서 이 기능이 활성화되어 있어야 한다. wsl 을 켜고 아래와 같이 명령을 입력하면 example-app 에 해당하는 컨테이너가 생성된다.

curl -s https://laravel.build/example-app | bash

Docker Desktop 에 다음과 같이 생성되는 것을 볼 수 있다.

이제 Laravel Sail 을 사용하여 서버를 켜자. Sail 은 Docker 개발환경에서 Laravel 과 상호연동하기 위한 도구라고 설명하고 있다.

cd example-app
./vendor/bin/sail up

여기까지 하고 http://localhost 로 접속하면 [Laravel] 라라벨 프레임워크 시작하기처럼 올바르게 보여야 정상이다. 공식문서에서는 VSCode 에서 Remote 로 WSL 에 접속하여 처리하라고 권하고 있다만, 나는 그냥 PHPStorm 에서 홈스테드를 사용하려 한다.

더 읽을거리

https://laravel.com/docs/8.x#getting-started-on-windows

https://laravel.kr/docs/8.x/homestead