今天有个同事跟我说想离职

本我: 小菜,你是有合适的offer了吗?
小菜: 没有,就是想出去看看。
本我: 现在正值疫情,外面市场环境不是很乐观,两极分化,我先考你个问题。
小菜: 请赐教

本我:PHP的SAPI你都了解过那些?
小菜:php的SAPI就是指的php的运行模式,常见的运行模式有cli、cgi、fast-cgi

本我:你说的详细一点
小菜:
cli
cli命令行接口, 在命令行下执行PHP脚本, 内置web服务器,如果请求未指定执行哪个PHP脚本,则默认执行目录下的index.php 或index.html,如果这两个文件都不存在则返回404
cgi
cgi全称通用网关接口(Commom Gateway Interface),它把网页和WEB服务器中的执行程序连接起来,把从HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。常见和apache配合使用。
fast-cgi
fast-cgi是cgi的升级版本,PHP使用PHP-FPM(FastCGI Process Manager)进行cgi管理。

本我:他们都有什么区别啊
小菜:
cgi
cgi方式在遇到连接请求先要创建cgi的子进程,激活一个cgi进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内存,CPU时间等,造成效能低下。
fast-cgi
fast-cgi可以看作是一个cgi进程管理器,只要激活后,它可以一直执行着,不会每次都要花费时间去fork一次从而比cgi的方式有更大的吞吐能力。
cli
cli在命令行模式下可以直接通过内置web服务器启动的,不过一般都不会去这么用的,都是去跑指定php文件的,一般都是用于定时任务和实时消费消息队列的,不过就像近年来的swoole、workerman也是用cli模式运行的,得益于只用加载一次框架,持久化运行在内存中,所以比前两种方式都快不少.

本我:PHP-FPM运行时都会有那些进程啊?
小菜:master 和 work 进程

本我:他们是如何工作的呢?
小菜:PHP-FPM监听端口9000,nginx匹配到php文件后会通过fast-cgi协议转发给PHP-FPMmaster进程上,master进程会分配给work进程处理(每一个work进程都有一个php解释器),此时work进程会加载框架,匹配路由,最终返回结果给nginx

本我:那PHP-FPM都要配置那些参数优化呢?
小菜:emmmm,这个我倒是没有看过
本我: 还算可以,不过PHP-FPM参数优化你可以下去看看,离职到事情再考虑考虑
(ps:请了解 LNMP优化)

学到知识点的帅渣一定会 : > 点赞 · 收藏 · 评论

php 有哪些 SAPI相关推荐

  1. php sapi linux,PHP内核 - SAPI - Cli

    一.Cli 基本常识 Cli(Command Line Interface),即命令行接口,用于在命令行下执行PHP脚本,它是执行PHP脚本最简便的一种方式. Cli模式通过执行编译的PHP二进制程序 ...

  2. 转:安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法

    ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor': /home/king/PHP-5.2.13/ext/iconv ...

  3. 如何再发行 SAPI 5.1 核心组件

    基于语音应用程序设计接口 (SAPI) 5.1 版开发的应用程序要求您在客户端计算机上安装 SAPI 5.1 核心组件. 您可以将 SAPI 5.1 核心组件作为 Microsoft Windows ...

  4. 用SAPI实现Speech Recognition(SR) - 命令控制模式

    微软的语音识别,在这里我们简称它为SR(speech recognition),SR分为两种模式的监听:第一种模式:听写模式,即随意输入语音,监听对象将最为接近的字或者词,句反馈出来:第二种模式:命令 ...

  5. 用SAPI实现Speech Recognition(SR) - 听写模式

    摘选自:"北极悠蓝"的博客<C++使用SAPI实现语音合成和语音识别的方法和代码> 微软的语音识别,在这里我们简称它为SR(speech recognition),SR ...

  6. SAPI(PHP常见的四种运行模式)

    SAPI(Server Application Programming Interface)服务器应用程序编程接口,即PHP与其他应用交互的接口,PHP脚本要执行有很多方式,通过Web服务器,或者直接 ...

  7. 王帅:深入PHP内核(二)——SAPI探究(精辟)

    SAPI是Server Application Programming Interface(服务器应用编程接口)的缩写.PHP通过SAPI提供了一组接口,供应用和PHP内核之间进行数据交互. 简单的讲 ...

  8. PHP的SAPI【web server与应用程序沟通的标准泛称】:CGI、FastCGI 【web server与应用程序的具体标准】及其对应程序PHP-CGI PHP-FPM【具体的程序应用】

    1 Web Server与app传递数据的方法:Apache采用加载模块的方式 apache-> httpd[apache的进程]-> LoadModule->php5_module ...

  9. /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err

    /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err ...

  10. 安装php时,make步骤报错make: *** [sapi/fpm/php-fpm] Error 1

    安装PHP过程中,make步骤报错:(集中网络上各种解决方法) (1) -liconv -o sapi/fpm/php-fpm /usr/bin/ld: cannot find -liconv col ...

最新文章

  1. 模型花费几十万美元,五年之间指导无数项目,才发现负样本用的是null?
  2. python包NiBabel对医学影像文件格式进行读写:python包NiBabel简介集示例
  3. Spring系列之Spring框架和SpringAOP集成过程分析(十)
  4. java CAS原语
  5. 想学python看什么书-想学习Python做数据分析,应该看哪些书?
  6. ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现
  7. ORACLE TEXT FILTER PREFERENCE(一)
  8. idea 执行 java jar_idea打包java可执行jar包的实现步骤
  9. 信息摘要技术及算法介绍
  10. FastDFS介绍并在centos7中安装
  11. arcgisengine计算线要素总长度_ArcGIS |如何利用一个工具快速计算城市道路网密度...
  12. 没有计算机基础可以学python-Python入门必看篇(面向小白)想学Python只看这一篇就够了...
  13. 性能优化总结(三):聚合SQL在GIX4中的应用
  14. loadRunner函数之lr_set_debug_message
  15. 【洛谷 P2731】骑马修栅栏【欧拉路与欧拉回路】
  16. 抖音小程序开发流程(一)
  17. ISA防火墙策略配置以及服务器的发布
  18. k8s1.23 Ingress-nginx实操
  19. 3月最新HP库存备件信息-广州励康
  20. 轮换对称性实质 和差化积公式之sinθ+cosθ推导 rd原理,二重积分坐标系转化为什么多了个r; 二重积分几何意义: 二重积分物理意义: 二重积分求导:

热门文章

  1. Windows 找不到 gpedit.msc
  2. 串口、终端应用程序 API termios
  3. qs的arrayFormat与SpringBoot接收数组问题
  4. java关闭事件_为Java程序添加退出事件
  5. stm32f4 CubeMX生成IAR工程 移植ST官方 Bootloader 教程
  6. PYthon将图片合成视频方法一:OpenCV
  7. Spring三大核心思想详解
  8. js - JavaScript
  9. 浅述容器和容器镜像的区别
  10. 基于QT ffmpeg的动态桌面壁纸