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
    

    可以正常访问。

  • 相关阅读:
    类的访问级别
    包和静态引入
    数组
    流程控制
    适合初学者的ROS机器人教程(3): ROS下使用Python对UR5机器人建模与控制
    适合初学者的强化学习教程(1): python使用gym实践和注意事项
    适合初学者的ROS机器人教程(1): Ubuntu下ROS创建自己的包和使用github下载的包
    适合初学者的ROS机器人教程(2): Ubuntu下ROS使用Gazebo和Rviz对UR5机器人建模
    spyder使用IPython的ipdb调试
    mysql创建外键
  • 原文地址:https://www.cnblogs.com/mediocreWorld/p/15188438.html
Copyright © 2011-2022 走看看