Nginx と Docker Compose を使用して PHP アプリケーションのデプロイメントを最適化する
はじめに:
インターネットと Web アプリケーションの開発に伴い、PHP は広く普及しました。さまざまな Web サイトやアプリケーションを構築するために広く使用されているプログラミング言語。ただし、従来の導入方法では、煩雑な環境構成、バージョンの競合、容量拡張の困難など、いくつかの課題に直面する可能性があります。この場合、Nginx と Docker Compose を使用すると、PHP アプリケーションのデプロイメントプロセスが大幅に簡素化され、開発者の生産性とアプリケーションの安定性が向上します。
1. Nginx の利点と基本構成
Nginx は、オープンソースの高性能 Web サーバーおよびリバース プロキシ サーバーです。従来の Apache サーバーと比較して、Nginx はメモリ消費量が少なく、同時処理能力が高く、パフォーマンスが優れています。 Nginx の利点は次のとおりです。
Nginx の基本構成を実行するときは、以下に示すように、単純な nginx.conf ファイルを作成し、それに応じて構成できます。
worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.php; } location ~ .php$ { root /usr/share/nginx/html; fastcgi_pass PHP_CONTAINER:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
上記の構成ファイルでは、構成ポート 80 をリッスンし、root を通じて Web サイトのルート ディレクトリを指定し、サーバー名は localhost です。リクエストが .php で終わる場合、リクエストは PHP_CONTAINER という名前の PHP コンテナに転送され、リクエストされたファイル名は処理のために PHP コンテナに渡されます。
2. Docker Compose の使用例と例
Docker Compose は、コンテナー化されたアプリケーションのデプロイメントを簡素化し、複数のコンテナーでアプリケーションを定義および管理できるツールです。 Docker Compose は、YAML ファイルを使用してコンテナ間の関係とパラメータを構成し、これらのコンテナを管理するための簡単なコマンドを提供します。以下は docker-compose.yml ファイルの例です:
version: '3' services: web: build: . ports: - 80:80 volumes: - .:/usr/share/nginx/html depends_on: - php php: build: context: . dockerfile: Dockerfile-php volumes: - .:/var/www/html db: image: mysql:5.7 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: mydatabase
上の例では、web、php、db の 3 つのサービスを定義しました。 Web サービスは Dockerfile を使用して Nginx コンテナを構築し、ホストの現在のディレクトリをコンテナの /usr/share/nginx/html ディレクトリにマップし、コンテナのポート 80 をホストのポート 80 にマップします。 php サービスは Dockerfile-php を使用して PHP コンテナを構築し、ホストの現在のディレクトリをコンテナの /var/www/html ディレクトリにマップします。 db サービスは、mysql:5.7 イメージを使用して MySQL コンテナを構築し、コンテナの 3306 ポートをホストの 3306 ポートにマップします。
3. Nginx および PHP アプリケーションを Docker Compose に統合する
次に、Nginx および PHP コンテナーを構築するために、対応する Dockerfile を作成する必要があります。以下は Dockerfile の例です:
# 构建Nginx容器 FROM nginx:latest # 将宿主机的配置文件复制到容器中 COPY nginx.conf /etc/nginx/conf.d/default.conf # 定义容器启动时执行的命令 CMD ["nginx", "-g", "daemon off;"] # 构建PHP容器 FROM php:7.4-fpm # 安装PHP扩展和依赖库 RUN docker-php-ext-install pdo_mysql # 定义容器启动时执行的命令 CMD ["php-fpm"]
上記の Dockerfile の例では、まず nginx:latest イメージを使用して Nginx コンテナを構築し、ホストの構成ファイルをコンテナにコピーしてから、php:7.4- を使用します。 fpm イメージは PHP コンテナを構築し、pdo_mysql 拡張機能とその他の依存ライブラリをインストールします。
4. Docker Compose を使用して PHP アプリケーションをデプロイする
上記の構成と定義を完了すると、Docker Compose を使用して PHP アプリケーションをデプロイできます。まず、アプリケーションのルート ディレクトリに docker-compose.yml ファイルを作成し、上記の例の内容をそのファイルにコピーします。次に、コマンド ラインで次のコマンドを実行して、コンテナーを構築して起動します。
docker-compose build docker-compose up -d
これらのコマンドは、必要なイメージを構築し、コンテナーを起動します。 http://localhost にアクセスすると、デプロイされた PHP アプリケーションにアクセスできます。
概要:
Nginx と Docker Compose を使用して PHP アプリケーションのデプロイメントを最適化すると、デプロイメント プロセスが大幅に簡素化され、開発者の生産性とアプリケーションの安定性が向上します。 Nginx には、高性能 Web サーバーおよびリバース プロキシ サーバーとして多くの利点があり、コンテナ化されたアプリケーションのデプロイメント ツールとしての Docker Compose は、複数のコンテナをより簡単に管理できます。この方法で PHP アプリケーションをデプロイすると、開発プロセスがより効率的になり、アプリケーションの拡張と保守が容易になります。
以上がNginx と Docker Compose を使用して PHP アプリケーションのデプロイメントを最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。