4 votes

nginx : [emerg] variable "script_filename" inconnue

Je reçois cette erreur lorsque j'essaie d'utiliser script_filename

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

しかし script_filename est défini dans : 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;
         }

    }

La même erreur apparaît à l'intérieur de n'importe quel emplacement, par exemple :

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

Version de nginx : nginx/1.2.3

Comment puis-je le réparer ?

1voto

quanta Points 49664

Vous faites fausse route. Il n'y a pas de variable nommée $script_filename . Les SCRIPT_FILENAME appartient à Module Fastcgi est utilisé pour déterminer le nom du script.

Ce qu'il vous faut, c'est $request_uri .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X