php和PHP_SELF的位置

时间:2016-06-13 09:15:07

标签: php nginx

如何在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;

我做错了什么?

1 个答案:

答案 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。

相关问题