php 개발 환경용 docker-compose


fattyrabbit/php-fpm 을 이용한 로컬 개발 환경의 docker-compose

전체 출처 : h tps : // / t t c c t. 오 rg / 훗 ty 낙비 t / php에서 v-c r r 코 m 포세 / src / 마s r /

개요 : php 개발 (laravel 개발용)을 위해 local 환경을 작성하기 위해 다음을 목표로했습니다.
  • 가능한 한 가벼운
  • 다른 버전의 Php를 동시에 이동

  • 그래서 선택한 것이 「nginx」+「php-fpm」의 구성했습니다.

    php-fpm 사용자 정의



    php fpm 은 문제점으로서 Listen 포트가 「9000」고정으로 복수의 fpm를 동시에 이용할 수 없는 곳이 문제였습니다. 이를 위해 php fpm (우선 7.3) Dockerfile을 개선하여 Container를 실행할 때 포트를 설정할 수 있도록 수정했습니다.

    향상된 php-fpm 소스 :
    h tps : // / t t c c t. 오 rg / 도 c 케 r 푸 ぇ_ st / php fpm / src / ms r /

    nginx



    몇 번이나 테스트 중에 문제로 나온 것이 서버의 설정 파일의 수정이 있었을 경우, Dockerfile내에서 COPY를 이용하면 재Build해도 잘 갱신되지 않는 경우가 있었으므로, 서버의 관리를volumes로 관리하도록 설정했습니다.
    이제 Docker를 다시 시작하거나 내부 데몬을 다시 시작해도 설정 변경이 반영됩니다.

    docker-compose.xml
        proxy:
            build: nginx
            container_name: proxy
            build:
              context: .
              dockerfile: docker-nginx/Dockerfile
            volumes:
              - ./etc/logs/nginx:/etc/nginx/logs
              - ./etc/nginx/conf.d:/etc/nginx/conf.d
              - ./etc/nginx/letsencrypt:/etc/letsencrypt
              - ./www:/var/www/
            ports:
              - 80:80
              - 443:443
    

    php-fpm



    이 경우 Listen의 포트를 "9001"로 해 보았습니다.

    docker-compose.xml
      php-7.3:
        build:
          context: .
          dockerfile: docker-php-7.3/Dockerfile
          args:
            LISTEN_PORT: 9001
        container_name: php-7.3
        volumes:
          - ./www:/var/www/
          - ./etc/php/php.ini:/usr/local/etc/php/php.ini
    

    nginx 설정



    실제 웹 서버에서 php를 이용하는 설정입니다.

    /etc/nginx/conf.d/default.conf
       location ~ \.php$ {
            fastcgi_pass    php-7.3:9001;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include         fastcgi_params;
        }
    

    좋은 웹페이지 즐겨찾기