---- 아래 내용은 리눅스 또는 맥OS에서 동작하며 윈도우의 경우 정상동작 하지 않을 수 있다. ----

라라벨 스터디를 하기 위해서는 내 PC에 반드시 PHP를 설치해야 한다.

그리고 동작을 위해서 매번 php로 임시서버를 실행시키는 번거로움도 있고,

DB, Redis, nginx 등 여러 환경을 세팅하기 위해 내 PC에 많은 것들이 설치될 수 있어 관리도 어렵고 성능도 걱정이 된다.

그래서 이 모든 것을 하나도 설치하지 않고(물론 docker를 위해 docker 설치는 필수) 사용하는 환경을 구축할 것이다.

 

일단 laradock을 설치한다.

설치는 아래 명령으로 간단히 끝난다.(끝난다기 보단 docker-compose 를 위한 환경을 다운로드 받는 것이다.)

git clone https://github.com/laradock/laradock.git

다운로드가 끝나면 laradock 폴더가 생긴다.

docker-compose 명령어는 모두 laradock 폴더에서 실행한다.

실제 사용하게 되는 폴더 구조는

  • 현재폴더
    • laradock
    • 프로젝트 폴더1
    • 프로젝트 폴더2

이런식으로 구성되게 된다.

이 부분은 모두 설치 후 확인해 보면 된다.

 

이제 환경 파일을 설정하면 된다.

laradock 폴더에서 아래 명령을 실행한다.

cp env-example .env

환경 파일(.env)에서 아래 부분을 수정한다.

...
# Choose storage path on your machine. For all storage systems
DATA_PATH_HOST=./data
...

...
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project.
COMPOSE_PROJECT_NAME=laradock-study
...

...
NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443
...

DATA_PATH_HOST 는 이후 database의 데이터가 저장될 장소이다.

수정하지 않게 되면 이후 만드는 모든 laradock 프로젝트의 DB는 같은 DB를 보게 된다.(같은 DB를 보길 원하면 수정하지 않아도 됨)

COMPOSE_PROJECT_NAME 은 docker-compose에서 만들게 될 프로젝트 이름이 되는데,
이 부분이 같은 프로젝트들의 경우 같은 container를 사용하게 되어 여러 프로젝트를 할 경우 변경해주는 것이 좋다.

NGINX_HOST_HTTP(S)_PORT 의 경우 포트가 겹치면서 문제가 발생할 경우 포트를 변경해준다.

 

그리고 우선 할 일은 laravel 프로젝트를 생성하는 것이다.

처음에는 laravel 프로젝트가 없으므로 workspace부터 실행시킨다.

laradock 폴더에서 실행한다.

docker-compose up -d workspace

그리고 해당 컨테이너로 들어가 laravel 프로젝트를 생성한다.

docker-compose exec workspace bash

이제 확인해 보면 알겠지만 laradock 상위 폴더가 /var/www 을 가리키는 것을 확인할 수 있을 것이다.(물론 수정 가능하지만 이게 가장 나은 것으로 판단 했다.)

 

라라벨 프로젝트를 생성한다.

composer create-project --prefer-dist laravel/laravel prj1

 

이렇게 라라벨 프로젝트 준비가 끝났다.

 

이제 라라벨을 실제로 사용하기 위해 컨테이너를 나온다.(exit 명령 사용)

 

nginx 설정에서 laravel을 정확히 보기 위해서 ./nginx/sites/laravel.conf.example 파일을 복사한다.

cp ./nginx/sites/laravel.conf.example ./nginx/sites/prj1.conf
vi ./nginx/sites/prj1.conf

아래와 같이 수정한다.(단, prj1.test로 접속할 수 있는 환경을 만들어야 함)

...
    server_name prj1.test;
    root /var/www/prj1/public;
    index index.php index.html index.htm;
...

만일 localhost로 접속할수 밖에 없다면 default 파일을 수정한다.

vi ./nginx/sites/default.conf

아래와 같이 수정함

...
    server_name localhost;
    root /var/www/prj1/public;
    index index.php index.html index.htm;
...

 

nginx와 mariadb, workspace 컨테이너를 실행시켜 준다.

docker-compose up -d nginx mariadb workspace

 

이제 브라우저에서 접속하면 된다.

http://localhost or http://localhost:포트번호

+ Recent posts