ホームページ > バックエンド開発 > PHPチュートリアル > Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス

Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス

王林
リリース: 2023-10-12 12:04:01
オリジナル
1420 人が閲覧しました

Docker Compose、Nginx和MariaDB的完美组合:部署PHP应用程序的最佳实践

Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス

はじめに:
現代の Web アプリケーション開発では、コンテナー化テクノロジーが使用されています。トレンドになる。コンテナ化テクノロジでは、アプリケーションとその依存関係を 1 つのコンテナにパッケージ化できるため、コンテナ化テクノロジをサポートするあらゆる環境でアプリケーションを実行できます。 Docker は現在最も人気のあるコンテナ化テクノロジーであり、アプリケーションの展開、管理、拡張を簡素化できます。

PHP を使用して開発された Web アプリケーションの場合、Docker Compose を使用して、Nginx、PHP、データベースなどの複数のコンテナーを管理できます。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションをデプロイおよび管理する方法を紹介し、具体的なコード例を示します。

  1. Docker と Docker Compose のインストール
    まず、ホストに Docker と Docker Compose をインストールする必要があります。 Docker 公式 Web サイト (https://www.docker.com/) にアクセスして、ダウンロードしてインストールできます。インストールが完了したら、次のコマンドを実行して、Docker が正しくインストールされているかどうかを確認できます。

    docker --version
    docker-compose --version
    ログイン後にコピー
  2. 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 の環境変数とデータ ボリュームを設定します。

  3. 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 に設定しています。 。

  4. コンテナの起動
    プロジェクトのルート ディレクトリで次のコマンドを実行してコンテナを起動します:

    docker-compose up -d
    ログイン後にコピー

    上記のコマンドを実行すると、Docker が以下のように動作します。 docker-compose.yml ファイルの構成により、Web サービスと DB サービスが開始されます。 -d パラメーターは、コンテナーをバックグラウンド モードで実行することを示します。

  5. 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;
     }
    }
    ログイン後にコピー

    上記の構成ファイルは、Web サービスで実行されている PHP-FPM プロセスにリクエストを転送し、PHP 関連の環境変数を PHP-FPM に渡します。

  6. PHP アプリケーションの書き込み

    PHP アプリケーション コードをプロジェクト ディレクトリの src フォルダーに書き込みます。ここでは、例として単純な Hello World プログラムを取り上げます。

    <?php
    echo "Hello World!";
    ログイン後にコピー
  7. アプリケーションへのアクセス
  8. http://localhost にアクセスすると、ブラウザで実行中の PHP アプリケーションを表示できます。
概要:

Docker Compose、Nginx、MariaDB を組み合わせて使用​​することで、PHP アプリケーションを簡単にデプロイおよび管理できます。 Docker Compose は複数のコンテナを定義して実行するためのシンプルかつ強力な方法を提供し、Web サーバーとしての Nginx は大量の同時リクエストを処理でき、MariaDB は安定した信頼性の高いデータベース サービスを提供します。この記事の紹介と例を通じて、読者がこれらのテクノロジをよりよく理解して適用し、実際のプロジェクトで恩恵を受けることができることを願っています。

以上がDocker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート