我正在尝试在 nginx 中设置全局变量location
。除了需要 fastcgi 的 PHP 脚本外,现在一切都运行正常。它们正在运行 404。
有没有办法让我看到它访问的确切路径,以便我可以尝试调试一下并找出我做错了什么?
答案1
FastCGI 没有访问日志,因为它不是一个程序,而是一个协议。为了调试 PHP fastcgi 处理程序,我通常会求助于它strace
——它通常会向我显示正在尝试访问哪个文件,从那里找出问题所在并不难。Nginx 的请求处理调试日志通常也很有启发性。
使用 strace 实现这一点非常简单 —— 只需 strace PHP FCGI 工作器,并使用 限制自己进行读/写调用-e trace=read,write
。使用 增加字符串打印大小-s 4096
也是一个好主意,这样您就可以获得整个 FCGI 数据包,而不仅仅是前几个字节。
答案2
另一种方法是在 error_log 指令中启用调试模式,请参阅http://wiki.nginx.org/CoreModule#error_log
错误日志错误.日志调试;
会产生更多有关 nginx 内部发生情况的信息,但不会产生 fastcgi 内部发生情况的信息。
更多详细信息http://wiki.nginx.org/Debugging还。