环境: 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. 学习了解PHP中的SeasLog日志扩展

    今天来学习的扩展是和日志相关的一个扩展,对于 PHP 的日志应用来说,除了本身自带的 error_log() . syslog() 之外,在大多数的框架中还会经常见到 monolog 的踪影.当然,我 ...

  2. 【PHP数据结构】栈和队列的应用

    通过栈和队列的学习,我们似乎会感觉到其实数据结构还是非常简单的嘛.当然,这只是一个开始,我们从顺序表.链表开始,到现在的栈和队列,其实都是为了将来在铺路.在树和图的遍历算法中,都可以见到栈和队列的身影 ...

  3. javascript 标签切换

    * index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  4. spring Data Jpa的依赖+配置

    spring data jpa 是spring基于的orm框架,jpa规范的基础上封装的一套JPA应用框架 添加的相关依赖: <properties> <spring.version ...

  5. 通过Python收集MySQL MHA 部署及运行状态信息的功能实现

    一. 背景介绍 当集团的MySQL数据库实例数达到2000+.MHA集群规模数百个时,对MHA的及时.高效管理是DBA必须面对的一个挑战.MHA 集群 节点信息 和 运行状态 是管理的基础.本篇幅主要 ...

  6. GIT打补丁 - patch和diff应用

    一. 准备工作: [root@guangzhou gittest]# git br * master [root@guangzhou gittest]# git chk -b patch-test1 ...

  7. mysql从零开始之MySQL 创建数据库

    MySQL 创建数据库 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 ...

  8. Tomcat 源码环境搭建

    Tomcat 源码搭建 下载源码 下载地址 :https://tomcat.apache.org/download-80.cgi#8.5.35 下载之后解压缩 导入Idea 添加pom.xml文件 & ...

  9. python的函数参数传递方式

    python的一切数据类型都是对象.但是python的对象分为不可变对象和可变对象.python的变量是引用,对python变量的赋值是引用去绑定该对象. 可变对象的数据发生改变,例如列表和字典,引用 ...

  10. 深入理解java中main方法

    理解main方法语法 深入理解main方法: 解释main方法的形式:public static void main(String[] args){} main方法调用者:虚拟机 java虚拟机需要调 ...