✨
Docker と Nginx + PHP-FPM を使用した簡単な PHP 環境の構築
はじめに
本記事では、DockerとDocker Composeを使用して、NginxとPHP-FPMを組み合わせたシンプルなPHP実行環境を作成する方法を紹介します。
プロジェクト構成
.
├── docker-compose.yml
├── docker
│ ├── nginx
│ │ └── nginx.conf
│ └── php-fpm
│ └── Dockerfile
└── src
└── index.php
環境構築
Dockerfile の作成
PHP 8.2 の環境を Docker で構築します。この環境でPHP-FPMが動作するように設定します。
FROM php:8.2-fpm
WORKDIR /var/www/html
# PHPのソースコードをコンテナにコピー
COPY . .
# PHP-FPMを起動
EXPOSE 9000
CMD ["php-fpm"]
nginx.conf の作成
Nginx の設定ファイルを作成し、PHP-FPMと連携させます。
# docker/nginx/nginx.conf
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$ {
include fastcgi_params;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
docker-compose.yml の作成
NginxとPHP-FPMのサービスを定義し、Docker Composeで簡単に管理できるようにします。
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php-fpm
php-fpm:
build:
context: ./docker/php-fpm
volumes:
- ./src:/var/www/html
index.php の作成
シンプルなPHPスクリプトを作成して、動作確認を行います。
[src/index.php の内容]
<?php
phpinfo();
環境の起動と確認
- Docker環境を起動:
docker-compose up -d
2.ブラウザでhttp://localhost:8080にアクセスします。PHPのphpinfo()ページが表示されれば、環境が正しく構築されていることが確認できます。
まとめ
このプロジェクトでは、Dockerを使用してNginxとPHP-FPMを組み合わせたシンプルなPHP実行環境を構築しました。
主なポイント:
- NginxとPHP-FPMをDockerでセットアップ
- シンプルなindex.phpで環境の動作確認
おわりに
DockerとDocker Composeを使用することで、PHPの実行環境を簡単にセットアップできます。NginxとPHP-FPMの組み合わせは、パフォーマンスと安定性を求めるPHPアプリケーションに最適です。このセットアップをベースに、さらに高度なアプリケーションを開発・展開していくことが可能です
Discussion