
FastCGI请求中的SCRIPT_FILENAME需要指向PHP进程实际可见的正确脚本路径。Web服务器目录、容器挂载、alias或代理结构不同,都可能导致映射错误;不能只看浏览器URL中有index.php就认定文件路径正确。
区分URL路径与磁盘路径
记录站点根目录、请求URI、实际文件以及PHP运行环境看到的目录。Nginx和FPM如果在不同容器或挂载中,同一绝对路径可能只对一边存在。不要把客户端请求路径直接当作磁盘文件位置,更不能为方便随意映射到其他站点目录。
检查root、alias和参数组合
SCRIPT_FILENAME可能由不同变量拼接,root与alias下的行为不能机械套同一表达式。读取当前location及include中的FastCGI参数,排除同名参数重复或旧配置覆盖。参数文件存在不代表其中的值适合当前站点部署方式。

确认权限与可执行范围
文件存在后,FPM运行用户还必须具备合适读取权限。应限制允许交给PHP执行的脚本范围,避免不存在文件或上传目录任意内容被错误当成可执行脚本。不要通过将整个站点目录广泛开放权限来掩盖路径映射问题。
用明确脚本和真实页面对照
在受控环境验证已知入口文件与WordPress页面,核对FPM日志中实际尝试的路径,诊断信息不公开泄露。修改配置前保存原件并检查语法,重载后确认正常PHP、静态文件及不存在脚本行为都符合设计,没有跨站目录串用。
关键区别

请求URI:浏览器访问的路径;不是最终磁盘路径。
SCRIPT_FILENAME:传给PHP的执行文件;需在FPM环境可见。
目录映射:root或alias等决定;按上下文计算验证。
怎样确认处理到位
FPM收到正确且可读取的目标脚本,WordPress业务路径正常,不存在或不允许执行的文件不会被意外处理,诊断入口已清理。
容易误判的边界
路径错误、权限错误与PHP程序故障可能表现相近;应分别证明,不用给全目录最高权限作为通用修复。
