• 记一次 php-fpm 连接 nginx 的错误。


    环境: docker 中 centos 镜像下 yum 安装的php,nginx。  

      [root@lnmp1 /]# php -v
      PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
      Copyright (c) 1997-2018 The PHP Group
      Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

      [root@lnmp1 /]# nginx -v
      nginx version: nginx/1.14.1

     php-fpm 的配置文件路径: /etcphp-fpm.d/www.conf

     nginx 的配置文件路径 : /etc/nginx/nginx.conf

     

    php-fpm和nginx的两种通信方式:

      1,tcp socket。即 ip:port 方式。(适用于php和nginx在不同的主机上)

        php-fpm 的配置文件中这样 listen=127.0.0.1:9000;             #一般都是9000端口,如果不写ip,就是允许从其它机器可以访问。

           nginx 的配置文件中 fastcgi_pass 127.0.0.1:9000;    #这个在location 块中,表示指向的ip:port,要指向php-fpm的地址。

      2,unix socket daemon (只能当nginx和php在同一主机上时使用,效率比上一种高)

        php-fpm 的配置文件中这样 listen=/var/run/php-fpm/www.socket;      # socket 文件的名字路径都要一样

        nginx 的配置文件中 fastcgi_pass /var/run/php-fpm/www.socket;   

      3,nginx 配置php文件解析时,注意 location 块里面的root 路径是php主机上的目录,而不是 nginx主机里的。

        location ~ .php$ {
             root /html;      #这是php-fpm服务器上的地址,并不是Nginx的本地地址。

                  fastcgi_pass 172.17.0.3:9000;
                  fastcgi_index index.php;
                  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                  include fastcgi_params;
           }

     

    1,错误一: 配置好了之后,使用PHPinfo() 函数,使用index.php 测试,千万注意不要用 index.html 测试了。

    2,错误二:检查两种通信方式有没有弄混。不然会报错,(111: Connection refused)。

    3,报错:  [error] 219#0: *67 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,

      解决:修改 fastcgi_param 后面的参数。 原因是因为 已经配置了 root 路径。

      修改前: fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

      修改后 : fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      查看下面这篇文章更详细。

      https://www.cnblogs.com/smallrookie/p/7491514.html 

     

    总结:必须查看报错信息 /var/log/nginx/error.log

  • 相关阅读:
    jQuery 取选中的radio的值方法
    点击不同的span,追加当前class属性,并移除其他span
    Visual Studio快捷键
    hadoop官网介绍及如何下载hadoop(2.4)各个版本与查看hadoop API介绍
    TCP的状态
    圣思园java se培训总结(82-)(观察者设计模式)
    圣思园java se培训总结(78-)(swing的设计模式,观察者设计模式)
    圣思园java se培训总结(69-)(Annotation,异常处理)
    圣思园java se培训总结(58-)(java1.5新特性,可变参数,包装类)
    圣思园java se培训总结(52-)(泛型)
  • 原文地址:https://www.cnblogs.com/fengfengyang/p/11974393.html
Copyright © 2020-2023  润新知