nginx 404 500 502
Posted zhoupeng-php
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 404 500 502相关的知识,希望对你有一定的参考价值。
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端口: [[email protected] /]# netstat -ant | grep 9000 发现并没有监听到,但实际上我们的php-fpm已经启动,那现在怎么办呢? 我们去查看一下php-fpm.conf里面的配置: [[email protected] /]# 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的主要内容,如果未能解决你的问题,请参考以下文章