Dockerを使い、Nginx + PHP7-FPMの環境を構築する方法です。
環境
- macOS: 10.15.5
- Docker: 19.03.8
ファイル構成
- docker-compose.yml - nginx - conf.d - default.conf - html - index.php
手順
まずdocker-compose.yml
を以下のように記述します。Nginxは安定版、PHP-FPMはバージョン7系の最新版を指定しています。
version: '3' services: web: image: nginx:stable depends_on: - php ports: - '8080:80' volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./html:/var/www/html php: image: php:7-fpm volumes: - ./html:/var/www/html
次にNginxのデフォルトサーバー設定である nginx/conf.d/default.conf
を以下のように記述します。fastcgi_pass php:9000
の部分でFastCGIにphpコンテナを指定しています。
server { listen 80; server_name 127.0.0.1; root /var/www/html; index index.php; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
ドキュメントルート上の html/index.php
は以下のように記述します。
<?php echo 'hello php';
以上で準備が整いましたので、Dockerコンテナを起動します。
$ cd {当ディレクトリ} $ docker-compose up
ブラウザで localhost:8080
にアクセスし、”hello php”と表示されれば成功です。
Dockerコンテナを終了するには次のようにします。
$ docker-compose down
以上です。