【nginx】php-fpmの記述について

nginx へ php-fpm を設定する内容について調査しました。

php-fpmの内容

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass app-service:9000;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

include fastcgi_params

include fastcgi_params;

FastCGI の環境変数を設定するファイル (/etc/nginx/fastcgi_params) を読み込みます。
以下は、fastcgi_params の例になります。

cat /etc/nginx/fastcgi_params

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_pass

fastcgi_pass app-service:9000;

FastCGI サーバー(PHP-FPM)のアドレスを指定します。今回の例ではphp-fpmコンテナを指定しています。

fastcgi_split_path_info

fastcgi_split_path_info ^(.+\.php)(/.+)$;

$fastcgi_path_info、$fastcgi_script_nameを生成します。
fastcgi_split_path_infoには2つの正規表現を指定します。
1つ目の正規表現にマッチした値が、$fastcgi_script_name となり
2つ目の正規表現にマッチした値が、$fastcgi_path_info となります。

fastcgi_param

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

FastCGI の環境変数を追加します。なので、include fastcgi_params; の後に行って下さい。

最後に

他にあれば追記します。

© DeNnie.Lab All Rights Reserved.