Docker

[Docker] Ubuntu 컨테이너에 PHP8 + Nginx + Laravel8 최신환경 세팅하기

먹세 2021. 9. 23. 11:15

 

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

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

- PHP8.0

- Nginx

- Laravel8

 

3. 컨테이너와 로컬 개발환경 연동하기

 

 

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

docker pull ubuntu
docker run -it -p 80:80 --name mycontainer ubuntu bash

 

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

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

# 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
php-fpm8.0 -v

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

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

 

- nginx 설치 및 세팅

# nginx 설치 / 확인
apt install nginx
nginx -v

# vim 에디터 설치 
apt install vim

# nginx php-fpm 설정 추가
vi /etc/nginx/site-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 host.docker.internal;


        # 아래 주석처리
        #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
apt install curl
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 등록
vi ~/.bashrc

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

# bashrc 적용
source ~/.bashrc

# laravel 프로젝트 생성
cd /home
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 를 입력하면 아래와 같이 laravel 화면이 뜬다.

http://localhost

http://host.docker.internal 

http://gateway.docker.internal

이외에 

C:\Windows\System32\drivers\etc\hosts

파일에 세팅되어있는 ip 및 도메인 모두 동일하게 접근 가능

# Added by Docker Desktop
192.168.0.3 host.docker.internal
192.168.0.3 gateway.docker.internal
192.168.0.3 local.dev

local.dev 처럼 자신의 로컬 개발용 도메인도 넣어주면 자신의 브라우저에서 local.dev로 접속 가능.

 

 

 

다음에는 Xdebug3 환경 세팅하는 방법을 알아보자

https://mosei.tistory.com/entry/Docker-Intellij-PHP8-Xdebug3-%EC%84%A4%EC%A0%95

 

[Docker] Intellij + PHP8 + Xdebug3 설정

docker 환경에서 intellij + php8 + xdebug3 설정을 해보자 1. xdebug 설치 2. xdebug 세팅 3. intellij 세팅 1. xdebug extension 설치 # xdebug3 설치 $ apt install php8.0-xdebug # 설치된 모듈 확인 $ php -m..

mosei.tistory.com

 

반응형