도찐개찐

Docker nginx + php8.0 + laravel8 설치하기 본문

Infra -------------------------/DOCKER

Docker nginx + php8.0 + laravel8 설치하기

도개진 2022. 3. 18. 14:44

* 본 포스팅은 기본 셋팅 절차에 대한 상세 설명을 다루고 있으나 귀찮으신 분들을 위해 명령어를 한번에 정리해둔 코드를 본문 최하단에 정리해 놓을 예정이니 따라하기 귀찮으시면 본문을 가볍게 읽으시고 하단 코드를 확인 하시면 됩니다.

1. 도커에서 ubuntu 이미지와 컨테이너 띄우기

$ docker pull ubuntu
$ docker run -it -p 8080:80 --name nginx_php8_laravel8 ubuntu bash

실행 결과 화면

 

docker ubuntu 셋팅 참고

 

#3 Docker ubuntu(이미지) 셋팅

* 본 포스팅 글은 ubuntu 설치에 한정 하지 않고 docker 이미지를 확인하여 해당 이미지를 다운로드 하고 컨테이너 생성하는데 까지 기초적인 매뉴얼을 다루었으니 참고 하셔서 읽어 주시기 바랍니

dev-truly.tistory.com

2. 컨테이너에 개발환경 세팅

* time zone 환경설정

* 하지 않아도 되는 설정이지만 해당 OS 환경 설정을 하지 않으면 패키지 설치시 마다 time zone을 설정해줘야 하는 번거로움이 있습니다.

* 패키지별 time zone 설정이 별도로 필요 하면 진행 하면 안됩니다.

$ export TZ='Asia/Seoul'
$ ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

 

- apt 관련 업데이트 및 php8, nginx 설치

# apt 최신버전 리스트업
$ apt update

# apt 최신버전 설치
$ apt upgrade

# 소프트웨어 관리 패키지 설치
$ apt install software-properties-common

# 최신버전 설치를 위한 별도의 레포지토리 추가
$ add-apt-repository ppa:ondrej/php

# php8 및 php-fpm 패키지 설치 / 확인
$ apt install php8.0-fpm

# nginx 설치
$ apt install nginx

 

- php8, nginx 설치 확인

$ php-fpm8.0 -v
$ nginx -v

php8.0, nginx 설치 완료 확인 화면

- 추가 사용 패키지, 프로그램 설치

# laravel 설치에 필요 
$ apt install php8.0-zip 

# laravel 실행시 필요
$ apt install php8.0-mbstring 
$ apt install php8.0-xml
$ apt install php8.0-curl

# 추가 사용 패키지 설치
$ apt install vim
$ apt install curl

- nginx php-fpm 설정 추가

$ vi /etc/nginx/sites-available/default


server {

    ....

}

server부분에 설정 추가

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # 홈 디렉토리 설정 
        root /home/laravel8/public;

        # Add index.php to the list if you are using PHP
        #index index.html index.htm index.nginx-debian.html;
        index index.php index.html;

        # 자신의 로컬 도메인 설정
        server_name localhost;


        # 아래 주석처리
        #location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ =404;
        #}

        # try_files 설정 새로 추가
        try_files $uri $uri/ /index.php; 
        
        # php-fpm 설정 추가
        # fastcgi_pass 경로는 vi /etc/php/8.0/fpm/pool.d/www.conf 경로에서 확인 가능
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        }
}

 

- 홈 디렉토리에 Laravel8 설치

# composer 2.x 버전으로 설치 (1.x 는 ubuntu20 이상에서 laravel command not found오류)
$ apt remove composer

$ curl -s https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer

# composer 2.x 버전 확인
$ composer -v

# laravel installer 설치
$ composer global require laravel/installer

# bashrc에 PATH 등록 방법
$ echo export PATH="$PATH:$HOME/.config/composer/vendor/bin" >> ~/.bashrc

# 또는

$ vi ~/.bashrc
# 제일 하단에 Laravel Composer PATH 등록
# Laravel Composer
$ export PATH="$PATH:$HOME/.config/composer/vendor/bin"


# bashrc 적용
$ source ~/.bashrc

# laravel 프로젝트 생성
$ cd /home
# laravel new {프로젝트 폴더명}
$ laravel new laravel8

# laravel 프로젝트 폴더 접근권한 설정
$ chown -R www-data laravel8

laravel 폴더 접근권한 설정은

/etc/php/8.0/fpm/pool.d/www.conf

위 파일에 설정되어있는 id와 동일하게 적용해줘야 한다.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.

# 이 부분 www-data에서 root로 변경하는것이 나중에 로컬환경과 마운트 할때 편하다
user = www-data
group = www-data

 

- php-fpm 및 nginx 실행

# php-fpm 실행
service php8.0-fpm start

# nginx 실행
service nginx start

 

그리고 웹브라우저 localhost/index.php 를 입력하면 아래와 같이 laravel 화면을 확인 할 수 있습니다.

 

* 간단설치 (필요 패키지 일괄 적용), docker-compose  셋팅 github 경로 포함

- 중간에 한번 [Enter] 한번 필요

$ export TZ='Asia/Seoul' \
    && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
    && apt update \
    && apt -y upgrade \
    && apt -y install software-properties-common \
    && add-apt-repository ppa:ondrej/php \
    && apt -y install php8.0-fpm \
        php8.0-zip \
        php8.0-mbstring \
        php8.0-xml \
        php8.0-curl \
        nginx \
        vim \
        curl \
    && apt remove composer \
    && curl -s https://getcomposer.org/installer | php \
    && mv composer.phar /usr/local/bin/composer \
    && composer global require laravel/installer \
    && echo export PATH="$PATH:$HOME/.config/composer/vendor/bin" >> ~/.bashrc \
    && source ~/.bashrc \
    && composer global require laravel/installer \
    && export PATH="$PATH:$HOME/.config/composer/vendor/bin" \
    && cd /home

- 본문 nginx php-fpm 설정 추가 확인 필요

$ vi /etc/nginx/site-available/default
$ laravel new laravel8
$ chown -R www-data laravel8

$ service php8.0-fpm start
$ service nginx start

docker-compose

 

GitHub - dev-truly/docker_nginx_php8.0_laravel8

Contribute to dev-truly/docker_nginx_php8.0_laravel8 development by creating an account on GitHub.

github.com

라라벨 세일 설치 하기

 

Docker + 라라벨 세일 설치 하기

도커 설치 MacOS 도커 설치 Docker 설치는 어렵지 않아서 스샷 된 이미지만 보셔도 충분히 설치가 가능 할거 같습니다. #1 도커란? 초보를 위한 도커 안내서 - 도커란 무엇인가? 도커를 처음 접하는

dev-truly.tistory.com

 


참고 : https://mosei.tistory.com/entry/Docker-Ubuntu-컨테이너에-PHP8-Nginx-Laravel8-최신환경-세팅하기 [씹어먹는 블로그]

 

728x90
Comments