CGI协议模式CGI的意思是通用网关接口(CommonGatewayInterface),它允许web服务器通过特定的协议与应用程序进行通信。调用原理为:用户请求->Web服务器接收请求->fork子进程调用程序/执行程序->程序返回内容/程序调用结束->Web服务器接收内容->返回给用户由于每个用户请求都有tofork创建子进程调用应用,请求结束后销毁进程,所以性能比较低。Fast-CGI协议模式Fast-CGI是CGI模式的升级版。它就像驻留在内存中的CGI。只要启用它,它就可以一直处理请求而不会结束进程。调用流程如下:Web服务器Fast-CGI进程管理器初始化->预fork多进程用户请求->Web服务器接收请求->Web服务器将请求交给Fast-CGI进程管理器->Fast-CGI进程管理器接收,处理其中一个空闲的Fast-CGI进程->处理完成,Fast-CGI进程变为空闲状态,等待下一个请求->Web服务器接收内容->返回给用户Fast-CGI和CGI都是Protocol,开启的进程是独立实现协议的进程。Apache+php运行时,默认使用模块模式。它使用php作为Apache模块并以Apache启动启动。当收到用户请求时,直接调用Apache的mod_php模块进行处理。php-cli模式php-cli模式属于命令行模式。这种模式不需要其他程序,直接在命令行执行php代码即可。命令类似如下:phpxxx.php注意:在命令行模式下,没有超时时间不能通过set_time_limit设置。在命令行模式下,buffer缓冲默认是禁用的。在普通web模式下,echovar_dump等输出语句/函数默认先进入php缓冲区,当缓冲区达到一定数量后才开始向web服务器传输。可以通过ob等一系列函数对缓冲区进行操作。比如php-cli方式下的ob_get_contents,默认是关闭缓冲区,直接输出。例如:echovar_dumpphpinfo等输出直接输出到控制台
