정상우
hELLO.
정상우
전체 방문자
382,743
오늘
77
어제
709
  • hELLO. (121)
    • 컴퓨터과학 (4)
      • 알고리즘 & 자료구조 (4)
    • 언어 & 프레임워크 (63)
      • Go (23)
      • PHP & Laravel (40)
    • 웹 (7)
    • 블록체인 (12)
      • 메인넷 (9)
      • 암호화폐 플랫폼 (3)
    • 포트폴리오 (10)
    • 칼럼 (20)
      • 에세이 (4)
      • 개발자스럽게 살기 (14)
      • 회고 (2)
    • 티스토리 (5)

블로그 메뉴

  • ⚡ 개발자 이력서
  • 🌟 깃허브
  • 💻 강의
  • ✨ 예제코드
  • ⭐ 브런치
  • 태그 클라우드
  • 방명록

공지사항

  • 2차 도메인을 설정했습니다 ✨

인기 글

  • JWT(JSON Web Token)의 개념부⋯
    2021.07.29
    JWT(JSON Web Token)의 개념부⋯
  • 'REST' 를 보다 'RESTful' 하게⋯
    2021.08.14
    'REST' 를 보다 'RESTful' 하게⋯
  • [Laravel] 라라벨 프레임워크⋯
    2021.06.10
    [Laravel] 라라벨 프레임워크⋯
  • 깃허브를 포트폴리오로 쓰려면⋯
    2021.12.25
    깃허브를 포트폴리오로 쓰려면⋯
  • 암호화폐 트레이딩 봇을 만들었⋯
    2021.05.12
    암호화폐 트레이딩 봇을 만들었⋯

태그

  • Algorithm
  • 개발 리뷰
  • 코딩테스트
  • 블록체인
  • 포트폴리오
  • go
  • 개발
  • 라라벨
  • 프로그래머스
  • php

최근 댓글

  • 고맙습니다 ~^^
    정상우
  • 오늘 블로그 만들었는데 검색하⋯
    엥뿌삐
  • 좋은 스킨 정말 감사드립니다.⋯
    이태홍
  • 고맙습니다 ㅎㅎ
    정상우
  • 제가 원하던 최고의 스킨입니다⋯
    _HEON

최근 글

  • 빠르게 성장하는 개발자의 세⋯
    2022.06.08
    빠르게 성장하는 개발자의 세⋯
  • 개발자와 엔지니어, 그 사이에서
    2022.05.10
    개발자와 엔지니어, 그 사이에서
  • 아임포트(Iamport)로 결제기능⋯
    2022.04.03
    아임포트(Iamport)로 결제기능⋯
  • 아임포트(Iamport)로 결제기능⋯
    2022.04.01
    아임포트(Iamport)로 결제기능⋯
  • [Laravel] 카페24 호스팅에 라⋯
    2022.03.29
    [Laravel] 카페24 호스팅에 라⋯

티스토리

hELLO · Designed By 정상우.
정상우

hELLO.

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

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

2021. 6. 12. 00:28

이번 포스트에서는 라라벨의 개발환경을 구축해보도록 하자. [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

    '언어 & 프레임워크/PHP & Laravel' 카테고리의 다른 글
    • [Laravel] 라라벨 블레이드 템플릿 (보간, 조건문, 반복문)
    • [Laravel] 라라벨 라우팅과 컨트롤러
    • [Laravel] 라라벨 프레임워크 시작하기
    • PHP 언어를 공부하기 위한 자료 및 문서 정리
    개발환경, 라라벨, 홈스테드
    정상우
    정상우
    과거의 배움으로 현재를 바꾸고 미래를 만듭니다. #25+2살 #INFJ #개발자 #브런치작가
    댓글쓰기
    다음 글
    [Laravel] 라라벨 라우팅과 컨트롤러
    이전 글
    [Laravel] 라라벨 프레임워크 시작하기
    • 이전
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • ···
    • 40
    • 다음

    티스토리툴바