nginxにphpとpathをサポートさせるinfo
2279 ワード
デフォルトでは、nginxはphpとpathをサポートしていません.infoの場合、nginxの他の構成情報については、serverの設定だけを説明しないように構成する必要があります.まずrootを言います.serverではrootを定義できます.locationでもrootを定義できます.違いは、locationで定義されたrootが他のlocationに作用しないことです.$document_rootとはserverに定義されたrootを指し、定義されていない場合はnginxインストールディレクトリの下にあるhtmlフォルダがデフォルトです. 単純にphpをサポートしたいだけであれば、locationは以下の に簡略化できる.
でもpath_をサポートするならinfoは、構成を変更する必要があります1.~.phpを~.に変更php(.*)は、受信するためです.phpの後ろのパラメータは、ディレクトリとして処理できません.2.fastcgi_の追加split_path_info、このパラメータの後に正規表現を指定し、2つのキャプチャが必要です.最初のキャプチャは$fastcgi_に再割り当てされます.script_name、2番目のキャプチャは$fastcgi_に再割り当てされます.path_info. 3.fastcgi_の追加param PATH_INFO、値$fastcgi_path_info. nginxとfastcgiの詳細については、上記のURLをクリックしてください.
server{
listen 80;
server_name 127.0.0.1;
root /web/project;
location / {
index index.php;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
でもpath_をサポートするならinfoは、構成を変更する必要があります1.~.phpを~.に変更php(.*)は、受信するためです.phpの後ろのパラメータは、ディレクトリとして処理できません.2.fastcgi_の追加split_path_info、このパラメータの後に正規表現を指定し、2つのキャプチャが必要です.最初のキャプチャは$fastcgi_に再割り当てされます.script_name、2番目のキャプチャは$fastcgi_に再割り当てされます.path_info. 3.fastcgi_の追加param PATH_INFO、値$fastcgi_path_info. nginxとfastcgiの詳細については、上記のURLをクリックしてください.