nginx+php搭建项目,可正常访问php页面,访问项目首页却出现404

知道的越多,才发现自己不知道的更多

问题起因

问题出在服务器环境搭建完成之后,开始部署项目,等项目完成部署,配置好nginx配置文件域名后,开始访问项目,却发现项目首页返回404。

排查过程

1、第一步:nginx配置错误??

单凭返回404,第一反应肯定是nginx配置项目路径错了,于是开始排查项目路径在哪里写错了。
查来查去,看着本地和服务器上一样的配置路径,本地可以正常访问,服务器却不行。
陷入了沉思,这nginx配置,没毛病啊,毕竟服务器配置是 ctrl+c、ctrl+v来的啊,既然本地配置没问题,服务器这么配肯定也是可以的。

2、第二步:php无法正常访问??

既然项目首页访问404,那咱们试试访问别的PHP文件呢。
说干就干,在项目同级目录下创建了别的PHP文件,一访问,可以正常输出。
那就是nginx配置确实没有毛病,肯定是配置好了的。

3、第三步:上网搜索

开始网上各种查找,找来找去也没遇见过我这种情况,既然找不到,觉得这肯定是小概率事件了,肯定是哪块出错了。

既然在本地可以正常访问,服务器却不行,肯定是哪块配置不一样,服务器有多加什么配置,才导致这样的情况。

在网上查找过程中,在众多的网页中看到nginx中有一个配置
在这里插入图片描述
在了解到该配置的信息后,觉得就是这个配置造成的了
在nginx中fastcgi_intercept_errorserror_page 会组合使用。
用来给客户端返回自定义的错误页面,如果俩者未组合使用,那么功能是失效的。

4、第四步:确认(已经80%确认是该原因造成的)

服务器和本地 nginx 配置有添加:
error_page 500 502 503 504 /50x.html;

本地没有配置过 fastcgi_intercept_errors,服务器配置该项目的conf文件中也未有该配置。

5、答案呼之欲出

既然项目的conf文件没有,那还有默认的 nginx.conf配置文件。

果然,在nginx.conf文件中静静的躺着
fastcgi_intercept_errors on;

至此,内心拨云见日,大彻大悟!!

解决办法

在nginx配置文件中 “注释” or “删除 ”  俩者
 # fastcgi_intercept_errors	on;

#error_page	 500 502 503 504 /50x.html;

重启nginx!!!
再次访问项目域名, 5XX。

在这里插入图片描述
既然项目可以访问了,5XX这也叫事,轻松加愉悦的解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值