ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションをコンテナ化する

Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションをコンテナ化する

王林
王林オリジナル
2023-10-12 14:40:561343ブラウズ

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器化

タイトル: Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナ化

はじめに: コンテナ化テクノロジーの急速な発展により、ますます多くの開発者が注目し始めていますアプリケーションのデプロイと管理に Docker を使用すること。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのコンテナ化を実装する方法を紹介し、読者の理解と実践に役立つ具体的なコード例を示します。

  1. Docker Compose の概要
    Docker Compose は、複数の Docker コンテナを定義して実行するためのツールであり、YAML ファイルを使用してアプリケーションのサービス、ネットワーク、ストレージなどを構成します。 Docker Compose を使用すると、複雑なマルチコンテナ アプリケーションをより簡単に定義および管理できます。
  2. Nginx の概要
    Nginx は、静的コンテンツの提供や動的コンテンツのプロキシに使用できる高性能 HTTP およびリバース プロキシ サーバーです。コンテナ化されたアプリケーションでは、Nginx はフロントエンド プロキシ サーバーとしてよく使用され、クライアントのリクエストを受け入れてバックエンド アプリケーション サービスに転送する役割を果たします。
  3. MariaDB の概要
    MariaDB は、MySQL をベースとしたオープンソースのリレーショナル データベース管理システムです。信頼性の高いパフォーマンスとセキュリティ機能を提供し、Web アプリケーションやクラウド コンピューティング環境で広く使用されています。
  4. アーキテクチャ設計
    私たちのコンテナ化された PHP アプリケーションは、Nginx、PHP-FPM、MariaDB の 3 つのサービスで構成されています。 Nginx は、クライアントの HTTP リクエストを受信して​​処理するために使用され、その後、動的リクエストを PHP-FPM に転送し、静的リクエストがクライアントに返されます。 PHP-FPM は PHP FastCGI プロセス マネージャーであり、PHP コードの処理と解釈を担当します。 MariaDB はアプリケーション データの保存に使用されます。

以下は、Docker Compose 構成ファイル (docker-compose.yml) の例です。

version: '3'
services:
  webserver:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - php
  php:
    image: php:7.4-fpm
    volumes:
      - ./php.ini:/usr/local/etc/php/php.ini:ro
      - ./code:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      MYSQL_DATABASE: your_database
      MYSQL_USER: your_username
      MYSQL_PASSWORD: your_password
    volumes:
      - ./data:/var/lib/mysql

この構成ファイルを通じて、webserver、php、db の 3 つのサービスが定義されています。 。 Web サーバー サービスは Nginx イメージを使用し、ホストのポート 80 をコンテナーのポート 80 にマップします。 php サービスは PHP-FPM イメージを使用し、コード ディレクトリをコンテナーにマウントします。 db サービスは MariaDB ミラーリングを使用し、データベースのユーザー名、パスワード、データ格納ディレクトリが設定されます。

  1. 設定ファイルとコード例
    Nginx 設定ファイル (nginx.conf) と PHP 設定ファイル (php.ini) も提供する必要があります。例を以下に示します。

nginx.conf:

worker_processes auto;

events {
    worker_connections 1024;
}

http {
    server {
        listen 80;
        
        location / {
            root /var/www/html;
            index index.php index.html index.htm;
            try_files $uri $uri/ /index.php?$query_string;
        }
        
        location ~ .php$ {
            fastcgi_pass php:9000;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";
        }
    }
}

php.ini:

date.timezone = Asia/Shanghai
upload_max_filesize = 2M
post_max_size = 8M
memory_limit = 128M

上記の例では、nginx.conf は Nginx 監視ポートとプロキシを構成します。動的リクエストを PHP サービスに転送するルール。 php.ini は、タイムゾーンやアップロードファイルの制限など、いくつかの一般的な PHP パラメーターを構成します。

  1. コンテナ化されたアプリケーションを実行する
    構成ファイルの準備ができたら、次のコマンドを使用してコンテナ化されたアプリケーションを開始できます:
$ docker-compose up -d

このコマンドを実行した後、Dockerコンテナーは自動的にダウンロードされ、構成ファイルに基づいて起動されます。 docker-compose ps コマンドを使用して、実行中のコンテナーを表示できます。

  1. 概要
    この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのコンテナ化を実装する方法を紹介し、具体的なコード例を示します。この記事を読むことで、読者がコンテナ化テクノロジをよりよく理解して実践し、アプリケーションのデプロイと管理の効率を向上できることを願っています。

上記は単なる例であり、実際の状況はさらに複雑である可能性があります。読者は必要に応じて適切に調整および拡張できます。この記事が読者の皆様のお役に立てれば幸いです。

以上がDocker Compose、Nginx、MariaDB を使用して PHP アプリケーションをコンテナ化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。