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を使用して両方のサービスを開始します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ