龙空技术网

解决502-Web服务器在作为网关或代理服务器时收到了无效响应

爱美女的小猪猪 118

前言:

此时姐妹们对“php守护进程导致502”大约比较珍视,各位老铁们都想要知道一些“php守护进程导致502”的相关资讯。那么小编也在网摘上搜集了一些关于“php守护进程导致502””的相关内容,希望朋友们能喜欢,我们一起来学习一下吧!

一台服务器最近新建了一个站点,使用的是IIS7.5+php8.2。设置帐号权限并创建好站点后,打开浏览器测试,却报“502”错误,提示如下:

服务器报错:“502-Web服务器在作为网关或代理服务器时收到了无效响应”

折腾了一番度娘后,没有找到结果。只好继续回到服务器去调试。

(1)会不会是php文件不工作呢?在网站目录下创建静态文件test.html并用浏览器访问这个文件,结果依旧。

(2)服务器中还有一个站点使用的是php7.4,一直是正常的。将php的处理程序路径更改为php7.4,访问正常。难道是php8的问题?理论是不可能的。于是将处理程序路径更改回php8继续找原因。

既然php7有用,问题点可以缩小到php8这里了。目光聚集到了php8的配置文件php.ini中。打开配置文件,仔细翻看,找到了cgi.force_redirect。看看其中的描述:

; cgi.force_redirect is necessary to provide security running PHP as a CGI under

; most web servers. Left undefined, PHP turns this on by default. You can

; turn it off here AT YOUR OWN RISK

; **You CAN safely turn this off for IIS, in fact, you MUST.**

;cgi.force_redirect = 1

由于建站时直接使用的大多是默认的配置参数,所以此处是注释状态,并未配置值,但是如果未定义,PHP将默认启用此选项。对于有些服务器来说这个参数是需要的,但是对于IIS应该关闭它。去掉参数前面的分号并修改如下:

cgi.force_redirect = 0

保存php.ini后,刷新页面,访问正常。

访问正常,输出phpinfo()的内容。

小结:php的配置文件有非常多的参数,默认情况下php是按推荐的方式提供运行。但是我们实际环境使用时,应当按需修改配置,以达到安全和性能的兼得。

标签: #php守护进程导致502