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