php CGI 和 CLI 区别

老师不用给我换座位,反正我坐哪,都聊得开。

CGI :“公共网关接口” (Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
以CGI方式运行时,web server将用户请求以消息的方式转交给PHP独立进程,PHP与web服务之间无从属关系。
纯粹调用--返回结果的形式通讯。而模块方式,则是将PHP做为web-server的子进程控制,两者之间有从属关系。最明显的例子就是在CGI模式下,如果修改了PHP.INI的配置文件,不用重启web服务便可生效,而模块模式下则需要重启web服务。

CLI :“ 命令行界面” (Command Line Interface),可在用户提示符下键入可执行指令的界面。
CLI则是命令行接口,用于在操作系统命令行模式下执行PHP,比如可以直接在win的cmd或Linux的shell模式下直接输入 php test.php 来得到结果。
它与CGI模式最大的不同的地方在于既不会输出HTTP头信息(CGI模式除了输出用户能看到的结果外,还会输出用户不能直接看到的HTTP 头信息),抛出的信息也直接以文本方式而不以HTML方式给出,比如新建一个 test.php,写入内容 <?php phpinfo();?> ,在浏览器中可以看到以HTML表格描述的信息,而在命令行输入 php test.php 则会直接看到纯文本的输出。

原文地址:https://www.cnblogs.com/fangdada/p/15292009.html