php的4种常见运行方式

  这篇文章主要介绍了php的4种常见运行方式,本文讲解了CGI、FastCGI、APACHE2HANDLER、CLI等4种运行方式,需要的朋友可以参考下

  SAPI:Server Application Programming Interface服务端应用编程端口。他就是php与其他应用交互的接口,php脚本要执行有很多中方式,通过web服务器,或者直接在命令行行下,也可以嵌入其他程序中。SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi、fast-cgi、cli、Apache模块的dll等。

  1、CGI

  CGI即通用网关接口(common gatewag interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执 行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。

  CGI方式在遇到连接请求(用户 请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi 方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内 存,CPU时间等,造成效能低下。

  2、FastCGI

  fast-cgi 是cgi的升级版本,FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全称PHP FastCGI进程管理器进行管理。

  Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)。FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。

  当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。

  FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

  在上述情况中,你可以想象CGI通常有多慢。每一个Web 请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的 好处是,持续数据库连接(Persistent database connection)可以工作。

  3、APACHE2HANDLER
PHP作为Apache模块,Apache服务器在系统启动后,预先生成多个进程副本驻留在内存中,一旦有请求出 现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。对于客户浏览器的请求反应更快,性能较高。

  4、CLI

  cli是php的命令行运行模式,大家经常会使用它,但是可能并没有注意到(例如:我们在linux下经常使用 “php -m”查找PHP安装了那些扩展就是PHP命令行运行模式;

 

时间: 2024-12-03 17:43:57

php的4种常见运行方式的相关文章

php的4种常见运行方式_php技巧

SAPI:Server Application Programming Interface服务端应用编程端口.他就是php与其他应用交互的接口,php脚本要执行有很多中方式,通过web服务器,或者直接在命令行行下,也可以嵌入其他程序中.SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi.fast-cgi.cli.Apache模块的dll等. 1.CGI CGI即通用网关接口(common gatewag interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务

JavaScript版几种常见排序算法分享

说明 ·  每个浏览器测试得出的数据会不一样.比如我用chrome 测试 一般快速排序都会最快,IE 则根据数组长度有可能希尔最快. ·  不要用太大数据去测试冒泡排序(浏览器崩溃了我不管) 个人理解 ·  冒泡排序:最简单,也最慢,貌似长度小于7最优 ·  插入排序: 比冒泡快,比快速排序和希尔排序慢,较小数据有优势 ·  快速排序:这是一个非常快的排序方式,V8的sort方法就使用快速排序和插入排序的结合 ·  希尔排序:在非chrome下数组长度小于1000,希尔排序比快速更快 ·  系统

交互设计:交互组件创新的四种常见方式

交互设计是一个创造性的工作,利用创新的方式漂亮地解决产品问题,是一个交互设计师价值的体现.当创新的交互设计被用户认可.被业界同行学习,更是一种巨大的职业满足感.这种创新不一定是惊天地泣鬼神的革命性设计,一个小小的交互组件的创新就可以让产品体验增色不少.今天就通过一些案例聊聊交互组件创新的四种常见方式,与大家共勉. 一.滚动条的创新[重构法] 我们先来回想一下阅读PDF文档的两种滚动方式:1.手型工具拖动 2.滚动条. 要翻看后面的信息,用手型工具向上拖动,用滚动条则是向下拖动,两种操作方式的原理

用ASP访问数据库的几种常见方式

用ASP访问数据库的几种常见方式 ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的技术.可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源.如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现 ADO 命令语句并不复杂而且容易掌握.同样地,如果您是一个经验丰富的数据库编程人员,您将会正确认识 ADO 的先进的与语言

从SEO的角度分析四种常见的网站导航结构

在我们为一个站点制定SEO策略的时候,我们需要重点考虑到的一个问题就是网站的导航.一个站点的导航栏就犹如是一本书的目录,其具有内容的检索.报道.引导等功能.作为一名访客,我们可以借由站点的导航制导网站的主题和定位,具有引导访客的关键作用,由此站点的导航在一项优化项目中有着举足轻重的位置.谈到网站的导航,我们就需要知道导航的结构,一般导航的结构类型可以分为四类,下面笔者就立足SEO的角度分别分析这四种常见的导航结构的效果. 1.主导航结构   站点的主导航结构位于站点的头部位置,通常一个企业站点的

五种常见的ASP.NET安全缺陷

asp.net|安全 保证应用程序的安全应当从编写第一行代码的时候开始做起,原因很简单,随着应用规模的发展,修补安全漏洞所需的代价也随之快速增长.根据IBM的系统科学协会(Systems Sciences Institute)的研究,如果等到软件部署之后再来修补缺陷,其代价相当于开发期间检测和消除缺陷的15倍. 为了用最小的代价保障应用程序的安全,在代码本身的安全性.抗御攻击的能力等方面,开发者应当担负更多的责任.然而,要从开发的最初阶段保障程序的安全性,必须具有相应的技能和工具,而真正掌握这些

八种常见Excel错误提示及问题解决方法

  八种常见Excel错误提示及问题解决方法          1.#####! 原因:如果单元格所含的数字.日期或时间比单元格宽,或者单元格的日期时间公式产生了一个负值,就会产生#####!错误. 解决方法:如果单元格所含的数字.日期或时间比单元格宽,可以通过拖动列表之间的宽度来修改列宽.如果使用的是1900年的日期系统,那么Excel中的日期和时间必须为正值,用较早的日期或者时间值减去较晚的日期或者时间值就会导致#####!错误.如果公式正确,也可以将单元格的格式改为非日期和时间型来显示该值

PPT几种常见的处理方法

PPT几种常见的处理方法   以图片和图例型文字为主,减少大篇纯文字的使用,增强视觉化 页面中夹杂一些非常规的版式,打破规则,更具活泼和视觉感 减少设计中的过多装饰,摒除冗杂,适当使用单纯的线条.色块,会让内容更明显 善于使用高清的图片,加以处理,制作全图或半图型的页面,会更有冲击力,眼前一亮 标题或局部放大字号,形成反差,会更强调内容,具有冲击力和美感

七种常见的Word打印设置技巧

  七种常见的Word打印设置技巧          1.打印指定页码 有些时候,我们只希望打印文档中的某些页码,只要点击菜单命令"文件→打印",在打开的"打印"对话框中,选中"打印当前页面"单选项,那么就可以打印当前鼠标所在的页面内容. 如果我们选中"打印自定义范围"单选项,就可以随意指定打印页码了. 假如我们要打印的页码是连续的,那么只要选择"打印自定义范围"后输入起始和终止的页码,中间用"-