Document
首页 php常见的运行模式

php常见的运行模式

江小白 2019-05-22 0 60

这个问题十分经典,我是建议伴随着ubuntu linux下自带的php安装包来讲解比较合适,我截个图,你们感受一下:

以往遇到问题总是有人说自己改了php配置文件,但是就是不生效,八成就是改错配置文件了。

先说最经典的php运行模式,就是apache mod模式,这种模式下,php是作为apache的一个模块而活着的,这就是最早期的LAMP模式。这会儿只要是配置apache配置,将php mod加载进来后重启apache服务即可。值得注意的是,php的运行权限将跟随apache的运行权限。apache收到php请求后,是交给php mod处理完再返回给apache即可。

fast-cgi模式,这种模式下,就是所谓的LNMP模式了。fast cgi是一种协议,任何脚本语言都可以遵循这种协议,不仅局限于php。只要语言本身可以解析fast cgi协议就可以。php的fast cgi协议是通过fpm进程管理器来实现的,而fpm则是一种master多slave的进程模型。fpm作为daemon服务一旦启动后,将会常驻内存,通过这个来提高性能,那么,之后就该说一下cgi了。然而,此时http服务器往往会搭配nginx,其实就是nginx通过默认端口在9000的fpm进行通信,通信协议就是靠的fastcgi!明白了吧

cgi模式,比fast cgi少了一个fast。这种模式下的php性能比较低劣,单进程的,php收到请求后将会启动一个cgi进程,解析完毕php脚本后将结果返回给客户端,这个cgi进程就会销毁掉,一旦请求量大了,性能非常低劣。所以,知道fast cgi的常驻内存为什么比cgi牛逼了吧。

cli模式,这种模式下的php极具高性能生产环境价值!cli模式有一个很大的好处就是可以使php程序常驻内存,可以实现多进程。如果有一些定时任务,定时脚本什么的,完全可以使用php的cli模式来实现,建议大家私下都多尝试尝试这种模式。比如workerman、swoole都是基于php的cli模式下实现的。

最后还有一种极为奇葩的模式,叫做embed模式,不甚了解,没用过,面试问这个题,我感觉你提一下就可以了。

打赏作者
打赏作者 打赏作者
免责声明:本文仅代表作者个人观点,与本网站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
作者: 2019-05-22 22:22:10

发表评论

看不清?点击更换

评论列表: