
タイトル: Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのコンテナ化
はじめに: コンテナ化テクノロジーの急速な発展により、ますます多くの開発者が注目し始めていますアプリケーションのデプロイと管理に Docker を使用すること。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのコンテナ化を実装する方法を紹介し、読者の理解と実践に役立つ具体的なコード例を示します。
- Docker Compose の概要
Docker Compose は、複数の Docker コンテナを定義して実行するためのツールであり、YAML ファイルを使用してアプリケーションのサービス、ネットワーク、ストレージなどを構成します。 Docker Compose を使用すると、複雑なマルチコンテナ アプリケーションをより簡単に定義および管理できます。
- Nginx の概要
Nginx は、静的コンテンツの提供や動的コンテンツのプロキシに使用できる高性能 HTTP およびリバース プロキシ サーバーです。コンテナ化されたアプリケーションでは、Nginx はフロントエンド プロキシ サーバーとしてよく使用され、クライアントのリクエストを受け入れてバックエンド アプリケーション サービスに転送する役割を果たします。
- MariaDB の概要
MariaDB は、MySQL をベースとしたオープンソースのリレーショナル データベース管理システムです。信頼性の高いパフォーマンスとセキュリティ機能を提供し、Web アプリケーションやクラウド コンピューティング環境で広く使用されています。
- アーキテクチャ設計
私たちのコンテナ化された PHP アプリケーションは、Nginx、PHP-FPM、MariaDB の 3 つのサービスで構成されています。 Nginx は、クライアントの HTTP リクエストを受信して処理するために使用され、その後、動的リクエストを PHP-FPM に転送し、静的リクエストがクライアントに返されます。 PHP-FPM は PHP FastCGI プロセス マネージャーであり、PHP コードの処理と解釈を担当します。 MariaDB はアプリケーション データの保存に使用されます。
以下は、Docker Compose 構成ファイル (docker-compose.yml) の例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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 ミラーリングを使用し、データベースのユーザー名、パスワード、データ格納ディレクトリが設定されます。
- 設定ファイルとコード例
Nginx 設定ファイル (nginx.conf) と PHP 設定ファイル (php.ini) も提供する必要があります。例を以下に示します。
nginx.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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:
1 2 3 4 | date .timezone = Asia/Shanghai
upload_max_filesize = 2M
post_max_size = 8M
memory_limit = 128M
|
ログイン後にコピー
上記の例では、nginx.conf は Nginx 監視ポートとプロキシを構成します。動的リクエストを PHP サービスに転送するルール。 php.ini は、タイムゾーンやアップロードファイルの制限など、いくつかの一般的な PHP パラメーターを構成します。
- コンテナ化されたアプリケーションを実行する
構成ファイルの準備ができたら、次のコマンドを使用してコンテナ化されたアプリケーションを開始できます:
このコマンドを実行した後、Dockerコンテナーは自動的にダウンロードされ、構成ファイルに基づいて起動されます。 docker-compose ps
コマンドを使用して、実行中のコンテナーを表示できます。
- 概要
この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのコンテナ化を実装する方法を紹介し、具体的なコード例を示します。この記事を読むことで、読者がコンテナ化テクノロジをよりよく理解して実践し、アプリケーションのデプロイと管理の効率を向上できることを願っています。
上記は単なる例であり、実際の状況はさらに複雑である可能性があります。読者は必要に応じて適切に調整および拡張できます。この記事が読者の皆様のお役に立てれば幸いです。
以上がDocker Compose、Nginx、MariaDB を使用して PHP アプリケーションをコンテナ化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。