web-dev-qa-db-ja.com

nginx:[emerg]不明な「script_filename」変数

script_filenameを使おうとすると、このエラーが発生します

nginx: [emerg] unknown "script_filename" variable
nginx: configuration file /etc/nginx/nginx.conf test failed

ただし、script_filenameは次のように定義されています: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_FILENAME    $document_root$fastcgi_script_name;
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  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;

nginx config:

    server {

        listen 80;
        server_name domain.com;
        access_log  /var/log/nginx/access.log  main;
        error_log  /var/log/nginx/error.log debug;
        root /home/username/public_html;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;

    if ($script_filename !~ "sss.php"){
    set $cond "true";
    }
    if ($script_filename !~ "Word-administrator"){
    set $cond "true";
    }

        location ~ \.php$ {
                    fastcgi_index  index.php;
                    fastcgi_pass 127.0.0.1:9000;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                    include /etc/nginx/fastcgi_params;
         }

    }

同じエラーがどの場所にも表示されます。例:

location / {
if ($script_filename !~ "sss.php"){
set $cond "true";
}
if ($script_filename !~ "Word-administrator"){
set $cond "true";
}
}

nginxバージョン:nginx/1.2.3

どうすれば修正できますか?

2
Linux Intel

あなたは間違っています。 $script_filenameという名前の 変数 はありません。 SCRIPT_FILENAMEパラメータは Fastcgiモジュール に属し、スクリプト名を決定するために使用されます。

必要なのは $ request_uri です。

0
quanta