美文网首页
PHP无法监听9000端口问题/502错误解决办法

PHP无法监听9000端口问题/502错误解决办法

作者: 狮子座鲸鱼 | 来源:发表于2019-09-26 14:42 被阅读0次

    配置nginx+php服务的时候,打开php文件就显示502,一般这个是php没启动的导致不能正常解析php文件。

    因为nginx解析php文件是交给fastcgi_pass 来处理的,默认一般fastcgi_pass 有两种方式来解析php,一种是常见的tcp也就是监听9000端口,这边只做tcp的解析。

    netstat -ntlp 查看9000端口是没有监听的,默认不再监听9000端口了,监听的是/tmp/php-cgi-56.sock

    1.分析问题

    我一般遇到这种问题都是先看nginx 的日志

    cd  /usr/local/nginx/logs

    vim  error.log

    连接被拒绝

    查看是否有监听到 9000 端口

    netstat -ntulp

    没有 监听9000端口

    2.解决问题

    找到 php-fpm.conf

    [root@izwz975qccspcqtrgb5hwrz ~]# cd /usr/local/php/etc

    [root@izwz975qccspcqtrgb5hwrz etc]# ls -l

    -rw-r--r-- 1 root root  467 Sep 10 18:49 php-fpm.conf

    将端口监听  改为9000

    改完重启 php 

    service  php-fpm  restart

    发现可以监听到9000 端口了

    但 访问项目 网址 又 出现了  access denied

    解决问题

    1.修改nginx 配置  的fastcgi_param 的值,并添加include fastcgi_param ,但是fastcgi_param的值的修改又有好几种说法,经过多次尝试之后

    修改如下:

    fastcgi_param  SCRIPT_FILENAME/data//wwwroot/default/victdo_ws/$fastcgi_script_name;

    include        fastcgi_params;

    reload配置文件,访问页面这次报错编程了access denied,访问被拒绝,查看了error日志没有发现错误提示,继续百度,

    最终发现thinkphp框架的网址需要修改php环境的一个参数,引起问题的原因可能是:ThinkPHP的URL_MODEL问题导致ngnix解析问题。

    于是我是这样解决的:

    2.进入服务器,改php.ini文件。将

    cgi.fix_pathinfo的值改成1。

    重启php-fpm。

    3.结果终于访问正常了。解决问题。至此thinkphp框架的网站可以访问了,接下来研究了下cgi.fix_pathinfo

    似乎这个配置如果改成1形成一个上传漏洞,具体大家可以百度参考下,所以接下来我把nginx配置文件进一步修改

    修改为php文件在上传目录的执行,也就是如下代码:值得注意的是这个代码需要添加php文件解析location块之前,否则无效!

    location ~ ^/public/.*\.(php|php5) {   deny all;  }

    相关文章

      网友评论

          本文标题:PHP无法监听9000端口问题/502错误解决办法

          本文链接:https://www.haomeiwen.com/subject/mzjiyctx.html