php phpfpm 区别,PHP理论:fastcgi和php-fpm的区别(一)

大概5年前,php开发的程序占据了因特网市场的80%以上,当时10个网站中有8个都是用php语言开发的。同样,在商业街平台上,php开发的商业街系统也占有很多市场,当然其中也有很多知名度高的电气商务网站。

说到PHP的开发,必须提到fastcgi和php-fpm,对PHP的性能起着重要的作用。

网络服务器

作为一种专门用于Web开发的ServicePlanet语言,PHP必须使用Web服务器来实现,常见的PHP架构有LAMP和LNMP,下图说明了PHP如何访问。

c5dcfa4b871d9e493df1c9c7384e9dc5.png

【mod_php模式】

可以看到,请求被发送到Apache,然后Apache解析PHP并将结果返回给客户端。在使用LAMP体系结构时,需要对Apache的配置文件httpd.conf进行修改。

phpx_module(xhpx_module(x为PHP版本号)。PHP是Apache的一个子模块,当请求访问PHP时,Apache调用phpx_module来解析PHP代码,这是可以理解的。增加:LoadModulephpx_modulePHP_ROOT/phpxapache2_2.dllllAddTypeappliaction/x-httpd-php.php,将下列语句改为DirectoryIndex.html,作如下修改:DirectoryIndex index.html index.htm index.php index.phtml

php_module如何解析PHP代码?-借助sapi

下图显示了Apache和PHP以及sapi之间的关系:

3e5dadc7215d680ff34f301dad5460ca.png

sapi是一个中间层,提供了与socket相似的外部通信接口,使PHP能够与其他应用程序进行数据交互。php_module为Apache和Nginx提供了很多sapi,为IIS提供了很多ISAPI,等等。

调用PHP的Apache执行过程:

apache->httpd->php_module->sapi->PHP

总而言之,借助php_module,Web服务器解析PHP执行的模式就是mod_php。

【fastcgi模式】

另一种方法来处理PHP的sapi,即提供cgi模式,现在cgi被fastcgi所取代。

叫做cgi,也就是commongatewayinterface。Web服务器收到请求后,发送给cgi程序(比如PHP的FastCGI)。CGI处理请求(解析PHP),然后将结果返回给Web服务器,再由Web服务器返回给客户端。

cgi的缺点在于,每个请求都有一个启动和退出过程,fork-and-execute模式饱受诟病,但同时出现大量并行请求时,它就会失败。

fastcgi的诞生弥补了这个缺陷,它借助提前启动等待请求来弥补这个缺陷,并且在完成响应之后不会退出,继续等待下一个请求。(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值