您的位置:首页 > 运维架构 > Nginx

demopu告诉你nginx+php 出现404错误解决方法

2015-05-29 00:00 267 查看
错误日志装好 nginx-1.0.5 与 php-5.3.6(php-fpm) 迫不及待的测试 info.php(<?php phpinfo(); ?>),但是只返回了空白页,什么也没有输出,以下是错误日志。192.168.6.82 – – [01/Aug/2011:13:54:20 +0800] "GET /info.php HTTP/1.1" 404 5 "-" "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.9) Gecko/20100827 Red Hat/3.6.9-2.el6 Firefox/3.6.9"192.168.6.82 – – [01/Aug/2011:14:57:30 +0800] "HEAD /info.php HTTP/1.1" 404 0 "-" "curl/7.19.7(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.6.2 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"192.168.6.82 – – [01/Aug/2011:13:58:57 +0800] "GET /index.html HTTP/1.1" 200 151 "-" "Mozilla/5.0(X11; U; Linux x86_64; zh-CN; rv:1.9.2.9) Gecko/20100827 Red Hat/3.6.9-2.el6 Firefox/3.6.9"分析1 使用firefox 浏览 http://192.168.5.87/info.php 测试页返回空白页,什么都没有。2 使用curl 测试 http://192.168.5.87/info.php 测试页提示404没找到。# curl -I http://192.168.5.87/info.phpHTTP/1.1 404 Not FoundServer: nginx/1.0.5Date: Mon, 01 Aug 2011 06:54:46 GMTContent-Type: text/htmlConnection: keep-aliveX-Powered-By: PHP/5.3.63 使用firefox 浏览 http://192.168.5.87/index.html4 静态页面的index.html 是可以访问的,而动态的info.php确是404 找不到,为什么会这样那?index.html 文件目录是nginx默认安装目录 /usr/local/nginx/html,而info.php 我把它放到了 /data/web 下 是不是这个原因 ?看下nginx.conf配置文档 server { listen 80; server_name localhost; location / { index index.html index.htm; root html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } }过程尝试更改下location ~ \.php$ {root /data/web; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }nginx -t && nginx -s reload测试访问仍然不行google 再次更改location ~ \.php$ {root /data/web; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/web$fastcgi_script_name; include fastcgi_params; }nginx -t && nginx -s reload测试一下[root@me zongm]# curl -I http://192.168.5.87/info.phpHTTP/1.1 200 OKServer: nginx/1.0.5Date: Mon, 01 Aug 2011 08:34:17 GMTContent-Type: text/
3ff0
htmlConnection: keep-aliveX-Powered-By: PHP/5.3.6firefox 测试ok!总结问题还是在配置文档上,估计不少朋友会遇到php 输出空白页什么也不显示,主要是nginx 的 root 指令 或者 fastcgi_param 指令 配置出了问题详细的文档请参考这里!再看下nginx.conf配置文档, server{ location / { index index.html index.htm;root html; } location = /50x.html { root html} location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } }1 发现除了location ~ \.php$以外,每个location 下都有个root 指令用于载入web文件根目录,默认都是 /usr/local/nginx/html,第一个错误是没有在 location ~ \.php$ 添加web文件根目录root /data/web;或者在server 字段下加入一个 root 例如server {………root /data/web;………}2 参考这里知道了 PHP使用fastcgi_param 指令的 SCRIPT_FILENAME参数决定需要执行哪个脚本,所以这个位置也要改成fastcgi_param SCRIPT_FILENAME /data/web$fastcgi_script_name;
转载请注明:Demopu.com » centos系统故障-nginx+php 出现404错误解决方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: