DockerでPHP7.4-fpm+nginxを構築する

プログラミング

docker-composeで公式イメージのPHP7.4-fpmとnginxを構築します。
docker-composeが未インストールの方は以下を参考にしてください。

docker-compose.ymlの作成

version: '3' 
services:
  web:
    image: nginx:latest
    ports:
      - "9000:80"
    depends_on:
      - app
    volumes:
      - ./web/default.conf:/etc/nginx/conf.d/default.conf
      - ./src:/var/www/
  app:
    image: php:7.4.8-fpm
    volumes:
        - ./src:/var/www/

nginxの設定ファイルを作成

$ vi ./web/default.conf
server {
    listen 80;
    root  /var/www/;
    index index.php index.html;
    access_log /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;
    location / { #以下を追記
        try_files $uri $uri/ /index.php$is_args$args;
    }
    location ~ \.php$ {
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_pass   app:9000;
          fastcgi_index  index.php;
          include        fastcgi_params;
          fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param  PATH_INFO $fastcgi_path_info;
      }
}

PHPファイルの作成

$ vi ./src/index.php
<?php
phpinfo();
?>

コンテナの立ち上げ

$ ls
docker-compose.yml  src  web

$ docker-compose up -d
Starting php-nginx_app_1 ... done 
Starting php-nginx_web_1 ... done 

ブラウザでhttp://クライアントのIP:9000にアクセスしてphpinfoが表示されれば完了です。

以上でDockerでのPHP7.4-fpm+nginxを構築は完了です。

pocketcode

30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。