如何在nginx中设置一个位置SCRIPT_FILENAME
指向当前请求的文件?
server {
listen 80;
server_name xx.xx.xx.xx;
location /test {
root /var/www/test;
}
location ~ \.php$ {
include /var/ini/nginx/fastcgi.conf;
fastcgi_pass php;
fastcgi_param SCRIPT_FILENAME /var/www/test$fastcgi_script_name;
}
}
我在这里得到File not found
但是,如果我将位置更改为此功能
fastcgi_param SCRIPT_FILENAME /var/www/test/index.php;
我做错了什么?
答案 0 :(得分:0)
您需要设置fastcgi_index
选项并使用index.php
作为其值。此索引指令查找索引文件的文件系统。所以试试:
location ~ \.php$ {
include /var/ini/nginx/fastcgi.conf;
fastcgi_pass php;
fastcgi_index index.php; #add this
fastcgi_param SCRIPT_FILENAME /var/www/test$fastcgi_script_name;
}
索引看到/data/www/test/index.php并且内部重定向到/index.php,
所以请求转到location ~ \.php$
并传递给fastcgi。