.phpファイルを実行できるようにnginxを設定する

デフォルトでは、ブラウザでexample.com/index.phpなどへアクセスすると、ブラウザが勝手にindex.phpをダウンロードする

index.phpをダウンロードではなく、実行・ページを表示させるには、nginxの設定が必要

    location ~ \.php$ {
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param  HTTPS on;
        fastcgi_pass   127.0.0.1:9000;        
        #fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    }

上記のような設定を
/etc/nginx/conf.dディレクトリに置いた
example.com.confのようなファイルの中に追記する

location {
}

のことをロケーションディレクティブと呼ぶ

location ~ \.php$のように書くことで、
拡張子が.phpのファイルに対してディレクティブ内のルールが適用される

include fastcgi_paramsにより、
/etc/nginx/fastcgi_paramsのファイルの中身が読み込まれる

fastcgi_param XXX aiueoのように書くと、
.phpファイルの中で$_SERVER['XXX']という変数でaiueoという値が使用できるようになる
(任意の変数名に、任意の値をセットできる)

fastcgi_pass
127.0.0.1:9000;を設定するとTCPの通信
unix:/var/run/php-fpm/php-fpm.sock;を設定するとUNIXドメインソケットによる通信

TCPは外部との通信にも使えるものだが
UNIXドメインソケットは内部用の通信

UNIXドメインソケットのほうが理論上は軽量で高速になるはずだが
メモリーを消費するから低スペックマシンでは使わないほうがいいかも?

  • 最終更新: 2023/05/24 11:43