Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $document\u root上的nginx和尾部斜杠?_Php_Nginx_Slash_Trailing - Fatal编程技术网

Php $document\u root上的nginx和尾部斜杠?

Php $document\u root上的nginx和尾部斜杠?,php,nginx,slash,trailing,Php,Nginx,Slash,Trailing,我对nginx使用以下配置: 但是,此配置会导致PHP出现未指定输入文件错误。我唯一能解决这个问题的方法就是改变这一行: fastcgi\u参数SCRIPT\u文件名$document\u root/$fastcgi\u SCRIPT\u name 注意$document\u root和$fastcgi\u script\u name之间的“/”。我被告知这是错误的配置,但没有人能够确切地告诉我为什么我的配置需要这个额外的斜杠 如何去掉多余的斜杠?删除尝试使用文件$uriindex.php$ur

我对nginx使用以下配置:

但是,此配置会导致PHP出现
未指定输入文件
错误。我唯一能解决这个问题的方法就是改变这一行:

fastcgi\u参数SCRIPT\u文件名$document\u root/$fastcgi\u SCRIPT\u name

注意
$document\u root
$fastcgi\u script\u name
之间的“/”。我被告知这是错误的配置,但没有人能够确切地告诉我为什么我的配置需要这个额外的斜杠


如何去掉多余的斜杠?

删除
尝试使用文件$uriindex.php$uri在第3行。

优先事项。只要你始终如一,任何一种方式都可以


在配置文件中添加斜杠,并确保在文档根和脚本名称的末尾和开头分别没有其他斜杠,反之亦然。

参数
路径\u TRANSLATED
是否获得正确的URI?我认为这是conf文件中变量的直接连接,不会进行计算。在它们之间添加斜杠时,可能会正确地解释它们


当出现错误
未指定输入文件时
,请检查日志以查看请求的URI。

如果显式添加如下根指令,会发生什么情况:

location ~ \.php$ {
    # fastcgi_split_path_info ^(.+\.php)(.*)$;
    include fastcgi.conf;

    root /var/www/my_webroot;

    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
}
同样的问题(在RHEL6服务器上的nginx+php fpm的remi安装中),您可以通过在/etc/nginx/fastcgi_参数中添加以下行来解决

fastcgi_param  SCRIPT_FILENAME    $request_filename;

我发现RHEL中缺少这一行,而Debian nginx却运行良好。

然后我的重写中断了,因为我有像
/foo/bar
这样的URL重定向到
index.php/foo/bar
。我不买它。是否在$root中添加尾部斜杠似乎没有什么区别。当我收到
未指定输入文件的
错误时,应该检查什么日志?nginx日志没有显示任何内容,因为错误是由PHP触发的。在我的
$\u服务器
转储中没有
PATH\u TRANSLATED
。nginx记录的唯一内容是访问日志,它只显示了一个“404”任何使用重写的URL。这里的想法是找出请求的URI。我的
$root
是在
服务器{…}
中定义的,这还不够好吗?