ホームページ >バックエンド開発 >PHPチュートリアル >Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションを効率的に運用および保守します

Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションを効率的に運用および保守します

WBOY
WBOYオリジナル
2023-10-12 09:58:451454ブラウズ

Docker Compose、Nginx和MariaDB的完美结合:高效运维PHP应用程序

Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションの効率的な運用と保守

はじめに

クラウド コンピューティングとコンテナ化テクノロジー 急速な発展により、Docker は人気のあるツールの 1 つになりました。 PHP アプリケーションの開発とデプロイでは、Docker Compose、Nginx、MariaDB を組み合わせて使用​​することで、効率的な運用とメンテナンスのソリューションを提供できます。この記事では、この組み合わせを使用して PHP アプリケーションを迅速にデプロイおよび管理する方法を紹介し、具体的なコード例を示します。

1. Docker Compose: シンプルで効率的なコンテナ オーケストレーション ツール

Docker Compose は、YAML ファイルを通じて複数の Docker コンテナのデプロイメントを定義および管理できる、シンプルで効率的なコンテナ オーケストレーション ツールです。 Docker Compose を使用する前に、Docker と Docker Compose をローカルにインストールする必要があります。インストールしたら、docker-compose.yml ファイルを作成して、PHP アプリケーションのコンテナを定義できます。

たとえば、次は docker-compose.yml ファイルの例です。

version: '3'
services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - 8000:80
    volumes:
      - ./src:/var/www/html
    depends_on:
      - mariadb
    links:
      - mariadb
  nginx:
    image: nginx:latest
    restart: always
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./src:/var/www/html
    depends_on:
      - php
  mariadb:
    image: mariadb:latest
    restart: always
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
    volumes:
      - ./data:/var/lib/mysql

上の例では、php、nginx、mariadb の 3 つのサービスを定義しました。 php サービスは、カスタム Dockerfile を使用してコンテナを構築します。これは、ホストのポート 8000 をコンテナのポート 80 にバインドし、ホストの ./src ディレクトリをコンテナの /var/www/html ディレクトリにマウントします。 nginx サービスは、公式に提供されている nginx イメージを直接使用し、ホストのポート 80 をコンテナのポート 80 にバインドします。また、ホストの ./src ディレクトリをコンテナの /var/www/html ディレクトリにマウントし、./nginx.conf ファイルを通じて nginx 構成をカスタマイズします。 mariadb サービスは、公式に提供された mariadb イメージを使用し、ホストの 3306 ポートをコンテナーの 3306 ポートにバインドします。同時に、mariadb の環境変数とボリュームのマウントも指定しました。

2. Nginx: 高性能 Web サーバー

Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーです。 PHP アプリケーションでは、Nginx をフロントエンド Web サーバーとして使用することで、リクエストの応答速度が向上し、同時処理能力が向上します。 Docker コンテナを通じて Nginx をデプロイおよび管理できます。

たとえば、上記の docker-compose.yml ファイルで nginx サービスを定義することで、Nginx をデプロイできます。同時に、./nginx.conf ファイルをマウントすることで、Nginx 構成をカスタマイズできます。

以下は、簡単な nginx.conf ファイルの例です:

worker_processes auto;
events {
    worker_connections 1024;
}
http {
    sendfile on;
    default_type application/octet-stream;
    server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ .php$ {
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
}

上の例では、基本的な Nginx サーバー構成を定義しました。 Nginx のルート ディレクトリを /var/www/html に設定し、デフォルトのインデックス ファイルを指定し、PHP ファイルの処理ルールを設定しました。ここでは、fastcgi_pass ディレクティブを通じて PHP ファイルを PHP サービスの 9000 ポートに転送します。

3. MariaDB: 信頼性の高いデータベース管理システム

MariaDB は、MySQL と互換性のあるリレーショナル データベース管理システムです。 PHP アプリケーションでは、MariaDB を使用してデータを保存および管理できます。 Docker コンテナを介して MariaDB をデプロイおよび管理すると、信頼性の高いデータベース サービスを提供できます。

たとえば、上記の docker-compose.yml ファイルで mariadb サービスを定義して MariaDB をデプロイします。同時に、環境変数を指定して、root パスワード、データベース名、ユーザー名、およびパスワードを設定できます。

上記は、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションを効率的に運用および保守するための基本的な手順とコード例です。この組み合わせを使用することで、PHP アプリケーションを迅速に展開して管理し、高性能で信頼性の高い実行環境を提供できます。

概要

この記事では、Docker Compose、Nginx、MariaDB を組み合わせて使用​​して、PHP アプリケーションを迅速にデプロイおよび管理する方法を紹介します。具体的なコード例を通じて、Docker Compose の YAML ファイルを使用してコンテナーを定義および管理する方法、Nginx を Web サーバーとして使用してパフォーマンスを向上させる方法、MariaDB を使用してデータを保存および管理する方法を示します。この組み合わせを使用することで、PHP アプリケーションを効率的に運用および保守するという目標を簡単に達成できます。

以上がDocker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションを効率的に運用および保守しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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