Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス
はじめに:
現代の Web アプリケーション開発では、コンテナー化テクノロジーが使用されています。トレンドになる。コンテナ化テクノロジでは、アプリケーションとその依存関係を 1 つのコンテナにパッケージ化できるため、コンテナ化テクノロジをサポートするあらゆる環境でアプリケーションを実行できます。 Docker は現在最も人気のあるコンテナ化テクノロジーであり、アプリケーションの展開、管理、拡張を簡素化できます。
PHP を使用して開発された Web アプリケーションの場合、Docker Compose を使用して、Nginx、PHP、データベースなどの複数のコンテナーを管理できます。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションをデプロイおよび管理する方法を紹介し、具体的なコード例を示します。
Docker と Docker Compose のインストール
まず、ホストに Docker と Docker Compose をインストールする必要があります。 Docker 公式 Web サイト (https://www.docker.com/) にアクセスして、ダウンロードしてインストールできます。インストールが完了したら、次のコマンドを実行して、Docker が正しくインストールされているかどうかを確認できます。
docker --version docker-compose --version
Docker Compose ファイルを作成する
docker-compose という名前のファイルをアプリケーションのサービスと対応する構成を定義するために使用されるプロジェクト .yml ファイルのルート ディレクトリ。以下は、単純な docker-compose.yml ファイルの例です。
version: '3' services: web: build: context: . dockerfile: Dockerfile ports: - 80:80 volumes: - ./src:/var/www/html depends_on: - db db: image: mariadb environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: mydb MYSQL_USER: user MYSQL_PASSWORD: password volumes: - db-data:/var/lib/mysql volumes: db-data:
上記の docker-compose.yml ファイルは 2 つのサービスを定義します。1 つは Nginx と PHP を実行する Web サービスで、もう 1 つはdb MariaDB を実行するためのサービス。 Web サービスはポート 80 を外部ホストに公開し、プロジェクト ディレクトリの src フォルダーをコンテナーの /var/www/html ディレクトリにマップします。 db サービスは、データベース データを永続的に保存するために MariaDB の環境変数とデータ ボリュームを設定します。
Dockerfile の作成
Web サービスに必要なカスタム イメージを構築するには、プロジェクト ディレクトリに Dockerfile という名前のファイルを作成する必要があります。以下は単純な Dockerfile の例です:
FROM php:7.4-fpm RUN docker-php-ext-install pdo_mysql WORKDIR /var/www/html
上記の Dockerfile は公式 php:7.4-fpm イメージに基づいており、pdo_mysql 拡張機能がインストールされており、作業ディレクトリを /var/www/html に設定しています。 。
コンテナの起動
プロジェクトのルート ディレクトリで次のコマンドを実行してコンテナを起動します:
docker-compose up -d
上記のコマンドを実行すると、Docker が以下のように動作します。 docker-compose.yml ファイルの構成により、Web サービスと DB サービスが開始されます。 -d パラメーターは、コンテナーをバックグラウンド モードで実行することを示します。
Nginx の構成
Nginx が Web サービスの PHP アプリケーションにリクエストを正しく転送するには、次の構成項目を Nginx 構成に追加する必要があります。
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 web:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
PHP アプリケーション コードをプロジェクト ディレクトリの src フォルダーに書き込みます。ここでは、例として単純な Hello World プログラムを取り上げます。
<?php echo "Hello World!";
Docker Compose、Nginx、MariaDB を組み合わせて使用することで、PHP アプリケーションを簡単にデプロイおよび管理できます。 Docker Compose は複数のコンテナを定義して実行するためのシンプルかつ強力な方法を提供し、Web サーバーとしての Nginx は大量の同時リクエストを処理でき、MariaDB は安定した信頼性の高いデータベース サービスを提供します。この記事の紹介と例を通じて、読者がこれらのテクノロジをよりよく理解して適用し、実際のプロジェクトで恩恵を受けることができることを願っています。
以上がDocker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。