.phpファイルを実行できるようにnginxを設定する
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 {
}
のことをロケーションディレクティブと呼ぶ
location ~ \.php$のように書くことで、
拡張子が.phpのファイルに対してディレクティブ内のルールが適用される
fastcgi_params・fastcgi_paramの説明
include fastcgi_paramsにより、
/etc/nginx/fastcgi_paramsのファイルの中身が読み込まれる
fastcgi_param XXX aiueoのように書くと、
.phpファイルの中で$_SERVER['XXX']という変数でaiueoという値が使用できるようになる
(任意の変数名に、任意の値をセットできる)
fastcgi_passの説明
fastcgi_passに
127.0.0.1:9000;を設定するとTCPの通信
unix:/var/run/php-fpm/php-fpm.sock;を設定するとUNIXドメインソケットによる通信
TCPは外部との通信にも使えるものだが
UNIXドメインソケットは内部用の通信
UNIXドメインソケットのほうが理論上は軽量で高速になるはずだが
メモリーを消費するから低スペックマシンでは使わないほうがいいかも?