我正在尝试在nginx中设置一个全局location 。 这一切现在完全正常,除了需要fastcgi的PHP脚本。 他们正在运行一个404。
有没有一种方法,我可以看到它正在访问的确切path,所以我可以尝试debugging一下,找出我做错了什么?
FastCGI没有访问日志,因为它不是一个程序,而是一个协议。 为了debuggingPHP的fastcgi处理程序,我通常使用strace – 它通常会告诉我哪个文件试图被访问,并且从中找出错误并不难。 Nginx的请求处理debugging日志logging通常也很有启发性。
对此使用strace非常简单 – 只需将PHP FCGI工作者进行绑定,然后使用-e trace=read,write来限制自己的读/写调用。 用-s 4096加上string打印大小也是一个好主意,所以你得到整个FCGI数据包而不是前几个字节。
另一种方法是在error_log指令中启用debugging模式,参见http://wiki.nginx.org/CoreModule#error_log
error_log error.log debug;
会产生更多关于nginx内部的信息,但不是fastcgi。