nginxにphpとpathをサポートさせるinfo

2279 ワード

デフォルトでは、nginxはphpとpathをサポートしていません.infoの場合、nginxの他の構成情報については、serverの設定だけを説明しないように構成する必要があります.
    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;
        }
    }
  • まずrootを言います.serverではrootを定義できます.locationでもrootを定義できます.違いは、locationで定義されたrootが他のlocationに作用しないことです.$document_rootとはserverに定義されたrootを指し、定義されていない場合はnginxインストールディレクトリの下にあるhtmlフォルダがデフォルトです.
  • 単純にphpをサポートしたいだけであれば、locationは以下の
  • に簡略化できる.
        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をクリックしてください.