ホームページ >バックエンド開発 >PHPチュートリアル >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 アプリケーションのパフォーマンスを最適化する方法を詳しく紹介します。
まず、コンテナを定義するために 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 ディレクトリにマウントします。
次に、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 も設定しました。
次に、パフォーマンス最適化の効果をテストするために、単純な PHP アプリケーションを作成する必要があります。 ./public ディレクトリにindex.php という名前のファイルを作成し、次の内容を追加します:
<?php echo "Hello, Docker!"; ?>
ターミナルに docker-compose と入力します。ファイルを開き、次のコマンドを実行してコンテナを起動します:
docker-compose up -d
これにより、バックグラウンドで定義したすべてのコンテナが起動して実行されます。
これで、ブラウザーで 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 サイトの他の関連記事を参照してください。