Nginx 的 fastcgi_param SCRIPT_FILENAME 的正确设置是什么?

Nginx 的 fastcgi_param SCRIPT_FILENAME 的正确设置是什么?

PHP FastCGI 示例&陷阱和常见错误据说应该是:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

但在我的 Ubuntu(/etc/nginx/fastcgi_params)中,设置是:

fastcgi_param   SCRIPT_FILENAME     $request_filename;

我使用的是 Ubuntu 设置,没有遇到任何问题。有什么缺陷吗?

答案1

$request_filename只是一种更好的书写方式。

$请求文件名

该变量等于当前请求的文件路径,由指令根或别名和 URI 请求组成;

答案2

基本上,您不会收到任何错误,因为 SCRIPT_FILENAME在 vhost 文件中定义 root 指令时它已经定义。因此,除非您在 vhost 文件中明确定义它,否则使用fastcgi_param的值SCRIPT_FILENAME将从 root 指令中获取。但这里有一个重点。nginx 需要另一个变量才能将请求发送到 php 服务器,$fastcgi_script_name您必须很好地定义它,以避免重复的 URL 和以斜杠结尾的 uri 的错误。

结论

为了让一切都运行良好,每个人都应该SCRIPT_FILENAME在位于 /etc/nginx 文件夹中的“fastcgi_params”文件中明确定义,或者在位于 sites-available 文件夹中的站点 vhost 中通过在 php 位置块中包含以下行来轻松定义:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

或者像上面写的那样包含在‘fastcgi_params’文件中,无论哪种方式都是一样的。

但最后请注意,每个 CMS 的配置都不同..因此,在 nginx 中搜索最适合您当前情况的配置..

我希望它能够对未来的任何人有所帮助,因为我花了很多时间才弄清楚......

相关内容