在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 中搜索最适合您当前情况的配置..
我希望它能够对未来的任何人有所帮助,因为我花了很多时间才弄清楚......