发送给PHP的错误路径
Nginx告诉PHP有关要通过SCRIPT_FILENAME fastcgi_param值执行的文件。wiki中的大多数示例都应将其定义为$ document_root $ fastcgi_script_name。可怕的教程通常会对路径值进行硬编码,但这是不可取的,因为我们不想复制信息并邀请将来搞砸。所以你已经使用了$ document_root $ fastcgi_script_name选项,突然间它不再有效了。
这是因为nginx有3级继承,通常称为块,这些是http,服务器和位置,每个都是父级的子块。nginx中的指令继承向下但从不向上或跨越,因此如果您在一个位置块中定义某些内容,则在任何情况下都不会在任何其他位置块中应用它。
通常,用户在location /中定义他们的索引和根指令,因为教程告诉他们。因此,当他们使用$ document_root定义SCRIPT_FILENAME时,实际上没有定义root指令,因此SCRIPT_FILENAME值只会成为使PHP查看根服务器目录的URI。
这里的简单解决方案是在服务器块中定义指令。(或甚至http块!)通常,您可以定义一个指令越高,您需要的重复指令就越少。
文件权限不正确
当我告诉他们他们的文件权限不正确时,大多数人都不相信我。他们正在查看该死的权限,PHP用户可以正常读取该文件!遗憾的是,这表明对Unix用户权限缺乏了解。由于能够读取文件是不够的,用户还必须能够遍历该文件。
这实际上意味着文件不仅应具有读取权限,而且整个目录结构应具有执行权限,以便PHP用户可以遍历该路径。一个例子:
假设您在/ var / www中有一个index.php文件。/var/www/index.php必须具有读权限,并且/ var和/ var / www都必须具有执行权限。
本文探讨了Nginx与PHP集成时常见的配置错误,包括错误的SCRIPT_FILENAME路径设置和文件权限问题,提供了解决方案,确保PHP脚本正确执行。
1145

被折叠的 条评论
为什么被折叠?



