ホームページ >バックエンド開発 >PHPチュートリアル >Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化

WBOY
WBOYオリジナル
2023-10-12 12:55:56780ブラウズ

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的性能问题

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化

PHP アプリケーションを開発およびデプロイするときに、パフォーマンスの問題が頻繁に発生します。これらの問題を解決するには、Docker Compose、Nginx、MariaDB を活用してアプリケーションのパフォーマンスを最適化します。

Docker Compose は、複数の Docker コンテナーを定義および管理するためのツールです。これは、Nginx、PHP、MariaDB などの複数のコンテナーを簡単に作成して実行するのに役立ちます。 Nginx は高性能 Web サーバーですが、MariaDB は一般的なリレーショナル データベースです。

以下では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのパフォーマンスを最適化する方法を詳しく紹介します。

  1. Docker Compose ファイルの作成

まず、コンテナを定義するために Docker Compose ファイルを作成する必要があります。 docker-compose.yml というファイルで、コンテナは次のように定義できます。

version: '3'
services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./public:/var/www/html

  php:
    image: php:7.4-fpm
    volumes:
      - ./public:/var/www/html

  mariadb:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./data:/var/lib/mysql

上の例では、nginx、php、mariadb の 3 つのサービスを定義しました。 Nginx サービスは、最新バージョンの Nginx イメージを使用し、ホストのポート 80 をコンテナのポート 80 にマップします。また、ローカルの nginx.conf ファイルをコンテナーにマウントして、Nginx 構成をカスタマイズしました。 PHP サービスは PHP 7.4-fpm イメージを使用し、ホストの ./public ディレクトリをコンテナ内の /var/www/html ディレクトリにマウントします。 MariaDB サービスは、最新バージョンの MariaDB イメージを使用し、root ユーザーのパスワードを設定し、ホストの ./data ディレクトリをコンテナ内の /var/lib/mysql ディレクトリにマウントします。

  1. Nginx 構成ファイルを作成する

次に、Nginx 構成ファイルを作成する必要があります。 docker-compose.yml ファイルと同じディレクトリに nginx.conf という名前のファイルを作成し、次の例に従って構成します。

user  nginx;
worker_processes  auto;

events {
    worker_connections  1024;
}

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

    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;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

上の例では、localhost サーバー ブロックという名前のファイルを定義し、listen しました。ポート80で。ルート ディレクトリは /var/www/html に設定され、すべてのリクエストは処理のためにindex.phpに送信されます。同時に、PHP リクエストを PHP コンテナのポート 9000 に転送するように fastcgi_pass も設定しました。

  1. PHP アプリケーションの作成

次に、パフォーマンス最適化の効果をテストするために、単純な PHP アプリケーションを作成する必要があります。 ./public ディレクトリにindex.php という名前のファイルを作成し、次の内容を追加します:

<?php
echo "Hello, Docker!";
?>
  1. コンテナの開始

ターミナルに docker-compose と入力します。ファイルを開き、次のコマンドを実行してコンテナを起動します:

docker-compose up -d

これにより、バックグラウンドで定義したすべてのコンテナが起動して実行されます。

  1. テスト パフォーマンス

これで、ブラウザーで http://localhost にアクセスでき、出力 Hello, Docker! が表示されるはずです。これは、PHP アプリケーションが正常に実行されたことを意味します。

Docker Compose、Nginx、MariaDB を使用すると、複数のコンテナを簡単に作成および管理でき、Nginx を高性能 Web サーバーとして、MariaDB をデータベースとして使用できます。これにより、PHP アプリケーションのパフォーマンスが大幅に向上します。

これは単なる例であり、独自のニーズに応じてより高度な最適化を実行できることに注意してください。たとえば、Redis などのキャッシュ ツールを使用してパフォーマンスを向上させたり、負荷分散ツールを使用して負荷のバランスをとったりします。

概要

Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのパフォーマンスの問題を最適化することは、比較的シンプルで効果的な方法です。 Docker を使用してコンテナを管理およびデプロイすることで、安定した高パフォーマンスの PHP アプリケーション環境を簡単に構築できます。この記事の紹介があなたのお役に立てば幸いです。

以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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