广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php中cli和cgi运行模式有哪些区别
  • 771
分享到

php中cli和cgi运行模式有哪些区别

2023-07-05 01:07:07 771人浏览 八月长安
摘要

这篇文章主要讲解了“PHP中cli和cgi运行模式有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中cli和cgi运行模式有哪些区别”吧!区别:CLI指的是命令行的运行模式,即

这篇文章主要讲解了“PHP中cli和cgi运行模式有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中cli和cgi运行模式有哪些区别”吧!

区别:CLI指的是命令行的运行模式,即在控制台或者是shell中键入命令执行PHP脚本代码;而CGI是公共网关接口的运行模式,就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的结果返回给Apache,然后再返回给相应的请求用户。

PHP能不能成功的在Apache服务器上运行,就看我们如何去配置PHP的运行方式。PHP运行目前为止主要有三种方式:

mod_php、以模块加载的方式运行,初学者可能不容易理解,其实就是将PHP集成到Apache服务器,以同一个进程运行。

CGI、以CGI的方式运行,CGI英文叫做公共网关接口,就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的结果返回给Apache,然后再返回给相应的请求用户。

FastCGI、以FastCGI的方式运行。这种形式是CGI的加强版本,CGI是单进程,多线程的运行方式,程序执行完成之后就会销毁,所以每次都需要加载配置和环境变量fork-and-execute(创建-执行)。而FastCGI则不同,FastCGI 像是一个常驻 (long-live) 型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去 fork 一次。FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自WEB Server的连接。

1、php的CLI运行模式是什么?

命令行

CLI:就是命令行,例如可以在控制台或者是shell中键入命令:

php -f index.php

然后获取输出

命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。    通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。

2、php中的CGI运行模式是什么?

公共网关接口

以CGI的方式运行,CGI英文叫做公共网关接口,就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的结果返回给Apache,然后再返回给相应的请求用户。

CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库api数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为html文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、VB 和Delphi 等。CGI 分为标准CGI 和间接CGI两种。标准CGI 使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI 又称缓冲CGI,在CGI 程序和CGI 接口之间插入一个缓冲程序,缓冲程序与CGI 接口间用标准输入输出进行通信。

公共网关接口”(Common Gateway Interface),Http服务器 与你的或其它机器上的程序 进行 “交谈”的一种工具 ,其程序 须运行在网络 服务器 上。在服务器 环境中,为“程序 ”提供标准 的接口,通过这个接口,“程序 ”可以对服务器 与客户端 交换的信息 做一些事情 。“程序 ”的语 言并没有要求。程序 对接口进行 操作。服务器 要支持 CGI就要提供CGI中要求的环境变量 ,或者还有别的。

个人理解:CGI规定了php与web server交流的规则,相当于执行了response = exec("php -f index.php -url=xxx -cookie=xxx -xxx=xxx")。

3、php的运行模式FastCGI是什么?

以FastCGI的方式运行。这种形式是CGI的加强版本,CGI是单进程,多线程的运行方式,程序执行完成之后就会销毁,所以每次都需要加载配置和环境变量fork-and-execute(创建-执行)。而FastCGI则不同,FastCGI 像是一个常驻 (long-live) 型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去 fork 一次。FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。

4、php的运行模式mod_php是什么?

模块加载

以模块加载的方式运行,初学者可能不容易理解,其实就是将PHP集成到Apache服务器,以同一个进程运行。

5、php的cgi运行模式如何配置 ?

cgi的方式运行,需要做如下的配置php配置文件

cgi.force_redirect = 0 //本来是 1 并且去掉注释符号;

修改apache的配置,去掉原来的模块配置

AddType application/x-httpd-php .phpLoadModule php5_module "C:/php5/php5apache2_2.dll"PHPinidir "C:/php5/php.ini"

6、cgi是什么?

最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。事物总是不 断发展,网站也越来越复杂,所以出现动态技术。但是服务器并不能直接运行 php,asp这样的文件,自己不能做,外包给别人吧,但是要与第三做个约定,我给你什么,然后你给我什么,就是握把请求参数发送给你,然后我接收你的处 理结果给客户端。那这个约定就是 common gateway interface,简称cgi。这个协议可以用vb,c,php,python 来实现。cgi只是接口协议,根本不是什么语言。下面图可以看到流程

php中cli和cgi运行模式有哪些区别

感谢各位的阅读,以上就是“php中cli和cgi运行模式有哪些区别”的内容了,经过本文的学习后,相信大家对php中cli和cgi运行模式有哪些区别这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: php中cli和cgi运行模式有哪些区别

本文链接: https://www.lsjlt.com/news/348905.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php中cli和cgi运行模式有哪些区别
    这篇文章主要讲解了“php中cli和cgi运行模式有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中cli和cgi运行模式有哪些区别”吧!区别:CLI指的是命令行的运行模式,即...
    99+
    2023-07-05
  • php中cli和cgi运行模式有什么区别
    区别:CLI指的是命令行的运行模式,即在控制台或者是shell中键入命令执行PHP脚本代码;而CGI是公共网关接口的运行模式,就是Apache在遇到PHP脚本的时候会将PHP程序提交给CGI应用程序(php-cgi.exe)解释,解释之后的...
    99+
    2023-05-14
    php
  • php中有哪些运行模式
    本篇文章给大家分享的是有关php中有哪些运行模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开...
    99+
    2023-06-14
  • PHP有哪些运行模式
    这篇文章将为大家详细讲解有关PHP有哪些运行模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运行模式:1、CGI协议模式,服务器通过特定协议与程序通信;2、“fast-cgi”协议模式,开启后可一直处理...
    99+
    2023-06-14
  • Debug模式和Release模式的区别有哪些
    本篇内容主要讲解“Debug模式和Release模式的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Debug模式和Release模式的区别有哪些”吧...
    99+
    2022-10-19
  • Wscript和Cscript运行脚本有哪些区别
    本篇内容介绍了“Wscript和Cscript运行脚本有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!窗口中运行,WSCRIPT;命...
    99+
    2023-06-08
  • workerman程序在PHP中的运行模式有哪些
    这篇文章给大家分享的是有关workerman程序在PHP中的运行模式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   我们知道workerman程序需要在php-cli...
    99+
    2022-10-19
  • MySQL主主模式和主从模式的区别有哪些
    这篇文章主要介绍MySQL主主模式和主从模式的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySQL复制的原理:将数据分布到多个系统上去,...
    99+
    2022-10-18
  • java中编译与运行的区别有哪些
    这篇文章给大家介绍java中编译与运行的区别有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念.基础概念编译时 编译时顾名思义就是正在编译的...
    99+
    2023-05-31
    java 编译 运行
  • linux单用户模式和多用户模式有哪些区别
    这篇文章主要介绍“linux单用户模式和多用户模式有哪些区别”,在日常操作中,相信很多人在linux单用户模式和多用户模式有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux单用户模式和多用户模...
    99+
    2023-06-30
  • windows以管理员身份运行和普通运行有哪些区别
    本篇内容介绍了“windows以管理员身份运行和普通运行有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!以管理员身份运行和普通运行区...
    99+
    2023-07-01
  • php中nts和ts有哪些区别
    这篇“php中nts和ts有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中nts和ts有哪些区别”文章吧。p...
    99+
    2023-06-29
  • php中printf和echo有哪些区别
    php中printf和echo的区别:echo可以输出多个字符串,print只能输出一个字符串。echo()无返回值,而print()有返回值。echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。echo可以用逗号分隔字符串...
    99+
    2022-10-10
  • php中echo和print有哪些区别
    这篇“php中echo和print有哪些区别”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php中echo和print有哪些区别”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章...
    99+
    2023-06-06
  • php中get和set有哪些区别
    这篇文章主要介绍“php中get和set有哪些区别”,在日常操作中,相信很多人在php中get和set有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中get和set有哪些区别”的疑惑有所帮助!...
    99+
    2023-06-29
  • php中fgetc()和fgets()有哪些区别
    本篇内容介绍了“php中fgetc()和fgets()有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、fgetc()用于从...
    99+
    2023-06-21
  • Java中代理模式与装饰模式的区别有哪些
    这期内容当中小编将会给大家带来有关Java中代理模式与装饰模式的区别有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。定义:代理模式,为其他对象提供一种代理以控制对这个对象的访问。装饰模式,动态地给一个...
    99+
    2023-05-31
    java 设计模式 代理模式
  • php中cookie和session的区别有哪些
    小编给大家分享一下php中cookie和session的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接并且登录成功后,第二次请求服务器...
    99+
    2023-06-14
  • php中opendir和fopen的区别有哪些
    小编给大家分享一下php中opendir和fopen的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!区别:fopen()函数用于打开一个文件或URL;而...
    99+
    2023-06-20
  • php中public和private的区别有哪些
    本篇内容介绍了“php中public和private的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、如果类成员声明为pu...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作