2026年6月23日
2026年6月23日
docker-composeでNginx+PHP-FPMを構築する方法
はじめに
Dockerはコンテナ技術を利用して、アプリケーションの構築とデプロイをより容易にするためのプラットフォームです。NginxはWebサーバーとして広く使用されており、PHP-FPMはPHPスクリプトを処理するためのファミリー・プロセス・マネージャーです。この記事では、docker-composeを利用して両者を組み合わせることで、単純かつ効率的なウェブサーバー環境を作成する方法について説明します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- 開発環境の迅速なセットアップ: ローカルで開発を行う際、すぐに動作するWebサーバーを設定したい場合。
- 本番環境の自動化: クラウド上のサーバーでNginxとPHP-FPMを自動的にセットアップし、スケーリングを行いたい場合。
- 複数のウェブアプリケーションの管理: 1つのDockerコンテナ内に複数のWebサイトをホストする必要がある場合。
手順・設定方法
ステップ1: Dockerイメージのダウンロード
# NginxとPHP-FPM用のDockerイメージをPullします。
$ docker pull nginx:latest
$ docker pull php:fpm-alpine
ステップ2: docker-compose.ymlファイルの作成
# docker-compose.ymlを作成し、NginxとPHP-FPMの設定を行います。
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- php
php:
image: php:fpm-alpine
volumes:
- ./html:/var/www/html
ステップ3: HTMLファイルの作成とアップロード
# ルートディレクトリにhello.htmlを作成し、Nginxで表示できるようにします。
$ echo "<h1>Hello, Docker!</h1>" > html/hello.html
ステップ4: docker-composeを実行してサービス起動
# docker-compose.ymlファイルを読み込み、サービスを起動します。
$ docker-compose up -d
注意事項
- セキュリティ上の注意: ファイル権限を確認し、必要に応じて修正してください。特にPHP-FPMの設定で、書き込みアクセスを許可するファイルは注意が必要です。
- パフォーマンス/運用上の注意: NginxとPHP-FPMのバージョンを最新に保ち、必要なパッチを適用することをおすすめします。
まとめ
1. Dockerイメージのダウンロード: Docker Hubから必要となるDockerイメージを取得します。
2. docker-compose.ymlファイルの作成: NginxとPHP-FPMの設定を行います。
3. HTMLファイルの作成とアップロード: ルートディレクトリに必要なHTMLファイルを作成し、Nginxで提供できるようにします。
4. docker-composeを実行してサービス起動: docker-composeを使用して両方のサービスを開始します。
関連記事: