php cgi 和cli 的区别

xiaoxiao2021-02-28  104

转载地址   https://my.oschina.net/u/919580/blog/119308

参考地址   http://php.net/manual/zh/features.commandline.php

CGI  common gateway interface  通用网关接口,  推荐官网的解释

以CGI方式运行时,web server将用户请求以消息的方式转交给PHP独立进程,PHP与web服务之间无从属关系.

纯粹调用--返回结果的形式通讯.而模块方式,则是将PHP做为web-server的子进程控制,两者之间有从属关系.最明显的例子就是在CGI模式下,如果修改了PHP.INI的配置文件,不用重启web服务便可生效,而模块模式下则需要重启web服务.

       CLI则是命令行接口,用于在操作系统命令行模式下执行PHP,比如可以直接在win的cmd或linux的shell模式下直接输入 php a.php 来得到结果.它与CGI模式最大的不同的地方在于既不会输出HTTP头信息(CGI模式除了输出用户能看到的结果外,还会输出用户不能直接看到的HTTP 头信息),抛出的信息也直接以文本方式而不以HTML方式给出,比如新建一个 test.php,

写入内容 <?php phpinfo();?> ,在浏览器中可以看到以HTML表格描述的信息,而在命令行输入 php test.php 则会直接看到纯文本的输出.

推荐 php官网的解释   更加的全面,补充:

cli 不会更改工作目录 , CGI会自动的将工作目录转到运行脚本的位置,

cli  覆盖了cgi 的一些参数

转载请注明原文地址: https://www.6miu.com/read-46664.html

最新回复(0)