共计 945 个字符,预计需要花费 3 分钟才能阅读完成。
1、CGI 协定模式 CGI 的含意是通用网关协定(Common Gateway Interface),它容许 web 服务器通过特定的协定与应用程序通信,调用原理如下:用户申请 -> Web 服务器接管申请 -> fork 子过程 调用程序 / 执行程序 -> 程序返回内容 / 程序调用完结 -> Web 服务器接管内容 -> 返回给用户 因为每次用户申请都得 fork 创立子过程调用应用程序,申请完结后销毁过程,所以性能比拟低。
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 代码,命令相似上面这样:php xxx.php
注意事项:
1、在命令行模式下,没有超时工夫,也无奈通过 set_time_limit
2、设置超时工夫在命令行模式下,默认敞开 buffer 缓冲。在一般的 Web 模式中,echo var_dump 等输入语句 / 函数,默认状况下是先进入 php 缓冲区,等缓冲区达到肯定数量,才开始传输给 Web 服务器。能够通过 ob 等系列函数操作缓存区,例如 ob_get_contents
3、在 php-cli 模式下,默认是敞开 buffer,间接输入。例如:echo var_dump phpinfo 等输入间接输入到控制台
残缺附件:http://github.crmeb.net/u/defu