zoukankan      html  css  js  c++  java
  • nginx整合php后,浏览器访问.php文件报错

    查看nginx错误日志:
    [root@node4 /]# tail -f /usr/local/nginx/logs/error.log
    2020/02/15 23:25:22 [crit] 1664#0: *20 connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory) while connecting to upstream, client: 172.17.0.1, server: localhost, request: "GET /hello.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "172.17.0.14"

    我的php是7.3.13版本,网上查资料发现它被配置成/var/run/php-fpm/php-fpm.sock(实际配置时我把中间的php-fpm文件夹去掉了),而不是/tmp/php-cgi.sock(php5.6.27是配置的/tmp/php-cgi.sock)。

    注意:实际测试中,php7.3.13版本中,listen的sock文件路径不能配置在/tmp文件夹下,否则,不管是否有该sock文件,都报错“文件或文件夹不存在”!

    于是修改2处地方的值:

    [root@node4 /]# vim /usr/local/nginx/conf/nginx.conf
    将location ~ .php$ {}中的fastcgi_pass的值修改为unix:/var/run/php-fpm.sock;
    
    [root@node4 conf]# vim /usr/local/php/etc/php-fpm.d/www.conf
    修改listen项: listen = /var/run/php-fpm.sock
    

    再次尝试,报另一个错:
    2020/02/15 23:47:19 [crit] 63#0: *1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 172.17.0.1, server: localhost, request: "GET /hello.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "172.17.0.14"

    原因:sock文件没有正确配置好所属用户和组,其所属用户和组都为root,导致www账户没有权限操作该sock文件。是因为忘记放开一些配置的注释了。修改以下配置文件:

    vim /usr/local/php/etc/php-fpm.d/www.conf
    去掉以下2行的注释符号(;):
    listen.owner=www
    listen.group=www
    

    可以正常访问。

  • 相关阅读:
    Java虚拟机的内存模型
    JAVA 对文件的操作
    JAVA 读取 YAML 文件
    Nginx 502 问题解决 及 安装
    Python pdb 调试 命令
    pycharm设置鼠标控制字体大小
    ISO9126 软件质量模型
    人生苦短我学Java9面向对象三大特性之多态 广深
    Golang微服务入门到精通之路3类的封装/继承/多态/接口类型 广深
    人生苦短我学Java10final关键字/代码块/抽象类 广深
  • 原文地址:https://www.cnblogs.com/mediocreWorld/p/15188438.html
Copyright © 2011-2022 走看看