>백엔드 개발 >PHP 튜토리얼 >Docker Compose, Nginx 및 MariaDB를 사용하는 PHP 애플리케이션의 신속한 배포 프로세스

Docker Compose, Nginx 및 MariaDB를 사용하는 PHP 애플리케이션의 신속한 배포 프로세스

WBOY
WBOY원래의
2023-10-12 15:12:111420검색

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的快速部署流程

Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 빠른 배포 프로세스 구현

요약:
이 문서에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 빠른 배포 프로세스를 구현하는 방법을 소개합니다. Docker Compose를 사용하여 컨테이너화된 애플리케이션의 구성, Nginx를 웹 서버로, MariaDB를 데이터베이스로 정의하고 관리합니다. 이러한 컨테이너를 구축하고 시작하면 PHP 애플리케이션을 빠르게 배포하고 실행할 수 있습니다.

소개:
클라우드 컴퓨팅 및 컨테이너화 기술의 발전으로 애플리케이션을 빠르게 배포하는 것이 점점 더 쉬워지고 있습니다. Docker Compose를 사용하면 YAML 구성 파일을 작성하여 애플리케이션에 필요한 컨테이너를 정의하고 관리할 수 있습니다. 이 기사에서는 Docker Compose를 사용하여 Nginx 및 MariaDB가 포함된 PHP 애플리케이션을 정의하고 배포하는 방법을 보여줍니다.

1단계: Docker 및 Docker Compose 설치
먼저 시스템에 Docker 및 Docker Compose가 설치되어 있는지 확인하세요. 공식 홈페이지에서 다운로드 후 안내에 따라 설치하시면 됩니다.

2단계: 프로젝트 디렉터리 생성
시작하기 전에 새 프로젝트 디렉터리를 생성해 보겠습니다. 이 디렉터리 내에서 애플리케이션 구성을 정의할 docker-compose.yml이라는 파일을 생성합니다.

3단계: Docker Compose 구성 파일 생성
프로젝트 디렉터리에서 docker-compose.yml이라는 파일을 생성하고 다음 샘플 코드를 템플릿으로 사용합니다.

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
    volumes:
      - ./data:/var/lib/mysql

위 예에서는 웹과 서비스라는 두 가지 서비스를 정의했습니다. db. 웹 서비스는 PHP 애플리케이션이 존재하는 서비스이며 Dockerfile이라는 파일은 웹 컨테이너를 구축하는 데 사용됩니다. 로컬 포트 ​​80을 컨테이너의 포트 80에 매핑하고 애플리케이션 코드를 컨테이너의 /var/www/html 디렉터리에 마운트해야 합니다. db 서비스는 최신 mariadb:latest 이미지를 사용하고 데이터베이스의 루트 비밀번호와 데이터베이스 이름을 설정하는 MariaDB 데이터베이스 서비스입니다.

4단계: Dockerfile 생성
프로젝트 디렉터리에서 Dockerfile이라는 파일을 생성하고 다음 샘플 코드를 템플릿으로 사용합니다.

FROM php:7.4-fpm

RUN apt-get update && apt-get install -y 
    nginx 
    libmcrypt-dev 
    libjpeg-dev 
    libpng-dev 
    libfreetype6-dev 
    libxml2-dev 
    libzip-dev 
    zip 
    unzip

RUN docker-php-ext-install mysqli pdo pdo_mysql xml zip

COPY nginx.conf /etc/nginx/sites-available/default

WORKDIR /var/www/html

CMD service nginx start && php-fpm

위 예에서는 php:7.4-fpm을 기본 이미지로 사용하고 설치했습니다. 일부 PHP 확장 및 Nginx. 또한 nginx.conf 파일을 컨테이너의 /etc/nginx/sites-available/default 디렉터리에 복사하고 작업 디렉터리를 /var/www/html로 설정합니다.

5단계: Nginx 구성 파일 생성
프로젝트 디렉터리에서 nginx.conf라는 파일을 생성하고 다음 샘플 코드를 템플릿으로 사용합니다.

server {
    listen 80;
    server_name localhost;

    root /var/www/html;

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

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

위 예에서는 간단한 Nginx 서버를 정의했습니다. 포트 80. 루트 디렉터리는 /var/www/html로 설정되며, PHP 파일 처리 방식을 설정합니다.

6단계: 컨테이너 빌드 및 시작
프로젝트 디렉터리에서 터미널을 열고 다음 명령을 실행하여 컨테이너를 빌드하고 시작합니다.

docker-compose up -d

이 명령은 Docker Compose를 기반으로 애플리케이션의 컨테이너를 빌드하고 시작합니다. 구성 파일. 빌드 프로세스 중에 Docker는 필요한 이미지와 종속성을 자동으로 다운로드하고 설치합니다.

7단계: 애플리케이션 테스트
이제 웹 브라우저에서 http://localhost를 방문하여 PHP 애플리케이션을 테스트할 수 있습니다. 모든 것이 정상이면 애플리케이션의 시작 페이지가 표시됩니다.

결론:
Docker Compose, Nginx 및 MariaDB를 사용하면 PHP 애플리케이션을 빠르게 배포하고 실행할 수 있습니다. 컨테이너화된 애플리케이션의 구성을 정의하고 관리함으로써 애플리케이션 배포 프로세스를 단순화하고 가속화할 수 있습니다. 이 기사가 PHP 애플리케이션을 신속하게 배포하는 데 도움이 되기를 바랍니다.

위 내용은 Docker Compose, Nginx 및 MariaDB를 사용하는 PHP 애플리케이션의 신속한 배포 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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