>백엔드 개발 >PHP 튜토리얼 >Docker Compose, Nginx 및 MariaDB를 위한 즉시 사용 가능한 솔루션: PHP 환경을 빠르게 설정

Docker Compose, Nginx 및 MariaDB를 위한 즉시 사용 가능한 솔루션: PHP 환경을 빠르게 설정

WBOY
WBOY원래의
2023-10-12 12:46:051490검색

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

Docker Compose, Nginx 및 MariaDB를 위한 즉시 사용 가능한 솔루션: PHP 환경을 빠르게 설정

개요:

PHP 애플리케이션을 개발하고 배포할 때 안정적이고 쉬운 환경을 설정하는 것이 중요합니다. 환경을 관리합니다. Docker Compose, Nginx 및 MariaDB는 PHP 환경을 빠르게 구축하기 위한 솔루션을 제공할 수 있습니다. 이 기사에서는 Docker Compose를 사용하여 컨테이너를 구성 및 실행하고, Nginx를 웹 서버로 사용하고, MariaDB를 데이터베이스로 사용하고, PHP 환경을 빠르게 구축하는 방법을 소개합니다.

1. Docker 및 Docker Compose 설치:

먼저 로컬 머신에 Docker 및 Docker Compose를 설치해야 합니다. 다양한 운영 체제에 대한 설치 가이드는 공식 Docker 웹사이트에서 찾을 수 있습니다. 설치가 완료되면 설치가 성공했는지 확인하세요. 터미널이나 명령 프롬프트에 다음 명령을 입력하세요.

docker --version
docker-compose --version

버전 번호가 올바르게 표시되면 Docker와 Docker Compose가 성공적으로 설치된 것입니다.

2. Docker Compose 파일 만들기:

다음으로 docker-compose.yml이라는 파일을 만들고 그 안에 서비스와 컨테이너 구성을 정의해야 합니다.

version: '3'
services:
  nginx:
    build:
      context: .
      dockerfile: nginx.dockerfile
    ports:
      - 80:80
    depends_on:
      - php
  php:
    build:
      context: .
      dockerfile: php.dockerfile
    volumes:
      - ./src:/var/www/html
  mariadb:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=secret

설명:

  • nginx 서비스: build 명령을 사용하여 Nginx 기반 컨테이너를 빌드하고, 로컬 시스템의 포트 80을 컨테이너의 포트 80에 매핑하고, PHP 서비스를 사용합니다.
  • php 서비스: build 명령을 사용하여 필요한 PHP 확장이 포함된 컨테이너를 빌드하고 로컬 시스템의 ./src 디렉터리를 컨테이너의 /var/www/html 디렉터리에 마운트하여 코드의 동기 업데이트를 달성합니다. .
  • mariadb 서비스: 기본 MariaDB Docker 이미지를 사용하고 ROOT 비밀번호를 secret으로 설정합니다.

3. Dockerfile 및 구성 파일 생성:

다음으로 이미지를 빌드할 때 필요한 구성과 종속성을 제공하기 위해 Dockerfile 및 구성 파일을 생성해야 합니다.

  1. nginx.dockerfile:
FROM nginx

COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf

설명: 공식 Nginx 이미지에서 새 이미지를 빌드한 다음 로컬 nginx.conf 및 default.conf 파일을 컨테이너의 해당 위치에 복사합니다.

  1. php.dockerfile:
FROM php:7.4-fpm

RUN apt-get update && apt-get install -y 
    zlib1g-dev 
    libzip-dev 
    && docker-php-ext-install zip pdo_mysql

COPY php.ini /usr/local/etc/php/conf.d/custom.ini

설명: 공식 PHP 이미지에서 새 이미지를 빌드한 다음 apt-get 명령을 사용하여 필요한 종속성을 설치하고 docker-php-ext를 통해 zip 및 pdo_mysql 확장을 설치합니다. -설치 명령 . 마지막으로 로컬 php.ini 파일을 컨테이너에 복사합니다.

  1. nginx.conf:
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        root   /var/www/html;
        index  index.php index.html;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ .php$ {
            fastcgi_pass   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

설명: 이것은 Nginx의 구성 파일입니다. 요청을 처리하고 PHP 처리를 PHP 컨테이너에 전달하기 위한 기본 로그 경로, 이벤트 설정, http 설정 및 기본 서버 블록으로 구성됩니다.

  1. default.conf:
server {
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

설명: 이것은 Nginx의 기본 구성 파일입니다. nginx.conf 파일의 서버 블록 설정과 동일합니다.

4. 컨테이너 구축 및 실행 시작:

모든 구성 파일을 설정한 후 컨테이너 구축 및 실행을 시작할 수 있습니다. 터미널 또는 명령 프롬프트에서 docker-compose.yml 파일이 있는 디렉터리로 이동하여 다음 명령을 실행합니다.

docker-compose up --build

이 명령은 이미지 빌드 및 컨테이너 실행 프로세스를 시작합니다. 완료되면 컨테이너가 실행되고 http://localhost를 통해 액세스할 수 있는 PHP 애플리케이션이 표시됩니다.

컨테이너를 백그라운드에서 실행해야 하는 경우 다음 명령을 사용할 수 있습니다.

docker-compose up -d --build

이 명령은 데몬 모드에서 컨테이너를 실행합니다.

요약:

Docker Compose, Nginx 및 MariaDB용 기본 솔루션을 사용하면 PHP 환경을 빠르게 구축하고 관리할 수 있습니다. Docker의 이식성과 컨테이너화 이점으로 인해 PHP 애플리케이션을 보다 쉽고 안정적으로 개발하고 배포할 수 있습니다. 이 기사가 도움이 되었기를 바랍니다. 코드 예제에 대한 자세한 내용은 이 기사에 언급된 구성 파일을 참조하세요.

위 내용은 Docker Compose, Nginx 및 MariaDB를 위한 즉시 사용 가능한 솔루션: PHP 환경을 빠르게 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.