PHP有几种运行模式?

码农天地 -
PHP有几种运行模式?

运行模式:1、CGI协议模式,服务器通过特定协议与程序通信;2、“fast-cgi”协议模式,开启后可一直处理请求;3、模块模式,接收请求调用“mod_php”模块处理;4、“php-cli”模式,输入“php xx.php”执行代码。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

一:CGI协议模式

cgi模式通用网关接口(Common Gateway Interface),它允许web服务器通过特定的协议与应用程序通信,通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器执行程序,再把服务器执行程序返回给HTML页。CGI的跨平台性能极佳,几乎可以在任何操作系统上实现。
调用原理大概为:用户请求->Web服务器接收请求->fork子进程 调用程序/执行程序->程序返回内容/程序调用结束->web服务器接收内容->返回给用户,由于每次用户请求,都得fork创建进程调用一次程序,然后销毁进程,所以性能较低。

二:fast-cgi协议模式

fast-cgicgi模式的升级版,它像是一个常驻型的cgi,只要开启后,不会每次都要花费时间去fork一次,就可一直处理请求,不再需要结束进程。
调用原理大概为:web服务器fast-cgi进程管理器初始化->预先fork n个进程用户请求->web服务器接收请求->交给fast-cgi进程管理器->fast-cgi进程管理区接收,给其中一个空闲fast-cgi进程处理->处理完成,fast-cgi进程变为空闲状态,等待下次请求->web服务器接收内容->返回给用户。

三:模块模式

apache+php运行时,默认使用的是模块模式,它把php作为apache的模块随apache启动而启动,接收到用户请求时则直接通过调用mod_php模块进行处理。

模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5),PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。

四:php-cli模式

php-cli模式属于命令行模式,对于很多刚开始学php就开始wamp,wnmp的开发者来说是最陌生的一种运行模式。该模式不需要借助其他程序,直接输入php xx.php 就能执行php代码,命令行模式和常规web模式明显不一样的是:

没有超时时间默认关闭buffer缓冲STDIN和STDOUT标准输入/输出/错误 的使用echo var_dump,phpinfo等输出直接输出到控制台可使用的类/函数 不同php.ini配置的不同

推荐:《2021年PHP面试题大汇总(收藏)》《php视频教程》

声明:本文原创发布,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

加个好友,技术交流

1628738909466805.jpg