自从上级公司离职后,快一年的时间没有写php程序和搭建LNMP环境,一直在做db运维和运维工具开发方面的事情。
最近决定开发开发一些自动话方面工具,重新拾起php,于是在测试机上搭建一个LNMP环境。
1、 nginx 404错误
一般的出现404错误,找不到页面资源。首先用strace排除了存在文件访问权限的问题,其次nginx的root参数设置也没有任何问题。
在配置好nginx和vhost之后,发现一直出现404错误和提示“File Not found”.
2015/02/05 15:28:56 [error] 15627#0: *14 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
请教了一下同事斌哥,他用tcpdump抓包发现问题, 发现SCRIPT_FILENAME参数多出了一个script.
# 错误的配置 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # 正确的配置 fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
通过tcpdump抓取php-fpm的9000端口的接受到的请求。
2、tcdump分析http报文头部数据
tcpdump -Xx -i any -nn port 9000
从下面的数据发现,资源路径多出了一个scripts。
原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/2463