nginx: [emerg] unknown "script_filename" variable
9,334
You're doing wrong. There is no variable named $script_filename
. The SCRIPT_FILENAME
parameter belongs to Fastcgi module, is used for determining the script name.
What you need is $request_uri.
Related videos on Youtube
Author by
Linux Intel
Updated on September 18, 2022Comments
-
Linux Intel over 1 year
I'm receving this error when trying to use
script_filename
nginx: [emerg] unknown "script_filename" variable nginx: configuration file /etc/nginx/nginx.conf test failed
However
script_filename
is defined in :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; } }
The same error appears inside any location for example :
location / { if ($script_filename !~ "sss.php"){ set $cond "true"; } if ($script_filename !~ "word-administrator"){ set $cond "true"; } }
nginx version: nginx/1.2.3
How can i fix it .?
-
Linux Intel over 11 yearsDo you mean i should replace
$script_filename
with$request_uri
in if condition ? -
Greg Petersen over 11 yearsGenerally, yes. Depends on your purpose.