环境: 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

记一次 php-fpm 连接 nginx 的错误。的更多相关文章

  1. lnmp使用socket方式连接nginx优化php-fpm性能

    lnmp使用socket方式连接nginx优化php-fpm性能 Nginx连接fastcgi的方式有2种:TCP和unix domain socket 什么是Unix domain socket?- ...

  2. FPM制作Nginx的RPM软件包

    FPM制作Nginx的rpm软件包 FPM相关参数-s:指定源类型-t:指定目标类型,即想要制作为什么包-n:指定包的名字-v:指定包的版本号-C:指定打包的相对路径-d:指定依赖于哪些包-f:第二次 ...

  3. nginx 502错误

    一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现.以下是小编搜集整理的一些Nginx 502错误的排查方法,供参考: Nginx 502错误的原因 ...

  4. 一起学微软Power BI系列-使用技巧(2)连接Excel数据源错误解决方法

    上一篇文章一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库中,我们介绍了Power BI Desktop中连接Oracle和Mysql的方法,其实说到底还是驱动的问题, ...

  5. Nginx 502错误触发条件与解决办法汇总(转载)

    一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现.有些站长是在刚刚转移到Nginx之后就出现了这个问题,所以经常会怀疑这是不是Nginx的问题,但 ...

  6. Nginx 499错误的原因及解决方法

    今天进行系统维护,发现了大量的499错误, 499错误 ngx_string(ngx_http_error_495_page), /* 495, https certificate error */n ...

  7. NGINX 502错误排查(转)

    一.NGINX 502错误排查 NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多.将网上找到的一些和502 Bad Gateway错误有关 ...

  8. Nginx常见错误与问题之解决方法技术指南

      Nginx常见错误与问题之解决方法技术指南. 安装环境: 系统环境:redhat enterprise 6.5 64bit 1.Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的 ...

  9. Nginx 502错误总结

    http请求流程:一般情况下,提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客 ...

随机推荐

  1. python刷题第二周

    1: 第3章-5 字符转换 (15 分) 本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. ...

  2. 启动Jenkins后无法访问,如何排错

    做IT工作,使用各种工具的时候,遇到错误都是一堆英文,对于英语不好的人,看到报错可能就会心烦,我刚开始就是这种状态.后来,遇到问题,首先复制报错信息到百度上搜索,没有人请教的时候,你不能坐等问题自己解 ...

  3. php CURL 发送http请求 GET POST

    * CURL http://www.php.net/manual/en/book.curl.php http://jp2.php.net/manual/en/function.curl-setopt. ...

  4. setTimeout 与setInterval的区别

    setTimeout(code,millisec) 方法用于在指定的毫秒数后调用函数或计算表达式 setInterval(code,millisec) 方法可按照指定的周期(以毫秒计)来调用函数或计算 ...

  5. npm卸载appium,重新安装桌面版appium

    大家好,appium环境搭建的时候,我选的是使用npm安装appium,但我在使用过程中,发现这样安装的appium没有界面,都是需要通过命令行操作,对于我来说,有点吃力.最后,还是觉得初学就先用桌面 ...

  6. Tidb使用

    一.为什么使用Tidb 最近发现tidb在互联网圈大火,新生代的一个NewSql数据库 具体链接可以访问pincap的官网  https://www.pingcap.com/docs-cn/v3.0/ ...

  7. Appium+Python自动化环境搭建-1

    前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python. 小编擅长Python,所以接下来的教程是appium+p ...

  8. keepalived 安装和配置解析

    Keepalived的特性     配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能     稳定性强:keepalived是一个类似于layer3, 4 & 7交换机制的软件,具 ...

  9. react之四种组件中DOM样式设置方式

    1.行内样式 想给虚拟dom添加行内样式,需要使用表达式传入样式对象的方式来实现 行内样式需要写入一个样式对象,而这个样式对象的位置可以放在很多地方 例如:render函数里.组件原型上.外链js文件 ...

  10. 题解 Sue的小球/名次排序问题/方块消除/奥运物流

    Sue的小球 名次排序问题 方块消除 奥运物流 Sue的小球 题目大意 有 \(n\) 个小球在下落,初始位置 \((x_i,y_i)\),下落速度为 \(v_i\).你初始位置在 \(x_0\),速 ...