ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションの迅速な移行

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションの迅速な移行

王林
王林オリジナル
2023-10-12 12:01:451089ブラウズ

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的快速迁移

Docker Compose、Nginx、MariaDB による PHP アプリケーションの迅速な移行

クラウド コンピューティングの継続的な開発と人気により、デプロイと管理が必要なアプリケーションがますます増えています。コンテナ化を使用します。 Docker は現在最も人気のあるコンテナ化プラットフォームの 1 つであり、高速かつ軽量のアプリケーションのパッケージ化および配信ソリューションを提供します。

この記事では、Docker Compose、Nginx、MariaDB の 3 つのツールを使用して、PHP アプリケーションの迅速な移行を実現する方法を紹介します。

1. 環境の準備
始める前に、Docker と Docker Compose をインストールする必要があります。 Docker はオープンソースのコンテナ化プラットフォームであり、Docker Compose は複数の Docker コンテナを定義して実行するためのツールです。

Docker のインストール方法については、公式ドキュメント (https://docs.docker.com/get-docker/) を参照してください。 Docker Compose のインストールは、次のコマンドで完了できます。

$ sudo pip install docker-compose

2. Docker Compose ファイルの作成
Docker Compose は、YAML 形式の構成ファイルを使用して複数のコンテナーを定義および管理します。 docker-compose.yml というファイルを作成し、その中にアプリケーションのコンテナを定義する必要があります。

以下は簡単な例です:

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - 80:80
    volumes:
      - ./web:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_DATABASE: myapp
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
      MYSQL_ROOT_PASSWORD: myrootpassword
    volumes:
      - ./db:/var/lib/mysql

この例では、2 つのサービス (web と db) を定義します。 Web サービスは PHP アプリケーションの実行に使用され、db サービスは MariaDB データベースの実行に使用されます。

  • Web サービス構成項目の説明:

    • build: イメージをビルドするためのコンテキスト パスとビルド ファイルを指定します。
    • restart: コンテナが終了後に自動的に再起動するように設定します。
    • ポート: コンテナのポート 80 をホストのポート 80 にマップします。
    • ボリューム: ホスト上の Web ディレクトリをコンテナの /var/www/html ディレクトリにマウントします。
    • depends_on: Web サービスは db サービスに依存します。
  • db サービス構成項目の説明:

    • image: 使用する MariaDB イメージを指定します。
    • restart: コンテナが終了後に自動的に再起動するように設定します。
    • 環境: データベース名、ユーザー、パスワードなどを含む MariaDB 環境変数を設定します。
    • ボリューム: ホスト上の db ディレクトリをコンテナの /var/lib/mysql ディレクトリにマウントします。

3. Dockerfile の作成
Dockerfile は、Docker イメージを構築するために使用されるファイルです。これは、イメージ構築プロセスを記述する一連の命令を定義します。

以下は簡単な Dockerfile の例です:

FROM php:7.4-apache

RUN apt-get update && 
    apt-get install -y libpq-dev && 
    docker-php-ext-install pdo pdo_mysql pdo_pgsql && 
    a2enmod rewrite

WORKDIR /var/www/html

COPY . .

RUN chown -R www-data:www-data /var/www/html

この Dockerfile は公式 php:7.4-apache イメージに基づいており、いくつかの依存関係と拡張機能をインストールし、作業ディレクトリを /var/ に設定します。 www/html。最後に、COPY 命令を使用して、現在のディレクトリ内のすべてのファイルをコンテナの /var/www/html ディレクトリにコピーし、/var/www/html ディレクトリの権限を設定します。

4. コンテナを起動します
上記の準備が完了したら、次のコマンドを使用してコンテナを起動できます:

$ docker-compose up -d

このコマンドは、定義した 2 つのコンテナ (Web コンテナとコンテナ コンテナ) を起動します。 db) を実行し、バックグラウンドで実行します。

5. Nginx リバース プロキシの構成
デフォルトでは、Docker Compose はサービスごとにデフォルト ネットワークを作成します。コンテナーの名前をドメイン名として使用して、コンテナー内のサービスにアクセスできます。

ただし、アプリケーションをより適切に制御および管理するために、Nginx をリバース プロキシとして使用して、リクエストを対応するコンテナに転送できます。

まず、Nginx をインストールして構成する必要があります。次のコマンドでインストールできます:

$ sudo apt-get install nginx

次に、次の内容を Nginx 構成ファイルに追加します:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://web:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

この構成ファイルでは、リクエストを Web サーバーに転送します。 proxy_pass ディレクティブ。コンテナのポート 80 にプロキシ関連のヘッダー情報を設定します。

最後に、Nginx サービスを再起動して設定を有効にします:

$ sudo service nginx restart

6. 結論
Docker Compose、Nginx、MariaDB を使用することで、PHP を迅速かつ簡単に移行およびデプロイできます。アプリケーション。 Docker は、アプリケーションの実行環境をホスト環境から分離する、信頼性が高く反復可能な環境を提供します。 Nginxのリバースプロキシ機能を利用すると、トラフィックの転送や負荷分散を簡単に行うことができます。 MariaDB は、高性能で信頼性の高いリレーショナル データベースを提供します。

この記事が、PHP アプリケーションの迅速な移行に関するヘルプとガイダンスを提供できれば幸いです。ご質問やご不明な点がございましたら、お気軽にお問い合わせください。 Docker を使用してアプリケーションの構築と管理を楽しんでください。

以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションの迅速な移行の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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