码迷,mamicode.com
首页 > 其他好文 > 详细

nginx 404 500 502

时间:2019-06-27 16:16:58      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:etc   local   net   目录   pre   fuse   open   add   access   

1.nginx 配置完后 出现404。
遇到这种情况,第一个想到是nginx 与 php 没有配置 pathinfo 的问题。
解决方法: nginx.conf加上这段

location ~ .+\.php($|/) {
        set $script $uri;
        set $path_info "";
        if ($uri ~ "^(.+\.php)(/.+)") {
            set $script $1;
            set $path_info $2;
        }
        fastcgi_pass    unix:/tmp/php-cgi.sock;
        fastcgi_index    index.php?IF_REWRITE=1;
        fastcgi_param    PATH_INFO    $path_info;
        fastcgi_param    SCRIPT_FILENAME    $root$fastcgi_script_name;
        fastcgi_param    SCRIPT_NAME    $script;
        include        fastcgi_params;
    }
2.php.ini

cgi.fix_pathinfo=1 
1.nginx 配置完后 出现500。
遇到这种情况,想到的是open_basedir 错误。

最后发现是(在nginx配置目录)  fastcgi.conf  中的open_basedir在捣鬼,将:
"open_basedir=$document_root/:/tmp/:/proc/"
改成:
"open_basedir=$document_root/../:/tmp/:/proc/" 
或者干脆把这行注释掉,问题解决
3.nginx 配置完后 出现502。
遇到这种情况打开日志 出现:connect() failed (111: Connection refused) while connecting to upstream
现在需要查看一下是否有监听9000端口:

[root@izwz9glf2r6p2z8ytslvblz /]# netstat -ant | grep 9000
发现并没有监听到,但实际上我们的php-fpm已经启动,那现在怎么办呢?
我们去查看一下php-fpm.conf里面的配置:

[root@izwz9glf2r6p2z8ytslvblz /]# vim  /usr/local/php/etc/php-fpm.conf
找到listen:

<value name="listen_address">/tmp/php-cgi.sock</value>
此时我们需要根据配置文件的listen地址做对应的修改:

 location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }
改成:

location ~ \.php$ {
        fastcgi_pass   unix:/tmp/php-cgi.sock;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
Access denied
在php.ini配置

将cgi.fix_pathinfo的值改成1
最后成功的配置
server {
    listen 80;
    server_name   localhost;
    access_log    /home/wwwlogs/access.log;
    error_log    /home/wwwlogs/nginx_error.log;
    set        $root    /home/wwwroot/vaeThink/public;
    location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
    {
        root $root;
    }
    location / {
        root    $root;
        index    index.html index.php;
        if ( -f $request_filename) {
            break;
        }
        if ( !-e $request_filename) {
            rewrite ^(.*)$ /index.php/$1 last;
            break;
        }
    }
    location ~ .+\.php($|/) {
        set $script $uri;
        set $path_info "";
        if ($uri ~ "^(.+\.php)(/.+)") {
            set $script $1;
            set $path_info $2;
        }
        fastcgi_pass    unix:/tmp/php-cgi.sock;
        fastcgi_index    index.php?IF_REWRITE=1;
        fastcgi_param    PATH_INFO    $path_info;
        fastcgi_param    SCRIPT_FILENAME    $root$fastcgi_script_name;
        fastcgi_param    SCRIPT_NAME    $script;
        include        fastcgi_params;
    }
}


作者:一生悬命Cat
链接:https://www.jianshu.com/p/30048bfe83d2
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  

nginx 404 500 502

标签:etc   local   net   目录   pre   fuse   open   add   access   

原文地址:https://www.cnblogs.com/zhoupeng-php/p/11097463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!