广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php中cgi是什么意思
  • 577
分享到

php中cgi是什么意思

PHP 2020-04-25 01:04:43 577人浏览 绘本
摘要

本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php中cgi是什么意思简单来说 CGI、 FastCGI只是一个协议而已, php-cgi 是实现cgi的程序, php-fpm是管理php-cgi的一个管理器而已

教程操作环境:windows10系统、PHP7.1版、DELL G3电脑

php中cgi是什么意思

简单来说 CGI、 FastCGI只是一个协议而已, php-cgi 是实现cgi的程序, php-fpm是管理php-cgi的一个管理器而已。

CGI全称是“公共网关接口”(Common Gateway Interface),Http服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。

CGI 描述了服务器和请求处理程序之间传输数据的一种标准。

CGI是干嘛的?CGI是为了保证WEB server传递过来的数据是标准格式的,方便CGI 程序的编写者。

web server(比如说Nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。Nginx会传哪些数据给PHP解析器呢?url要有吧,查询字符串也得有吧,POST数据也要有,HTTP header不能少吧,好的,CGI 就是规定要传哪些数据、以什么样的格式传递给后方处理这个请求的协议。仔细想想,你在PHP代码中使用的用户数据从哪里来的。

当web server收到/index.php这个请求后,会启动对应的CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。

好了,CGI是个协议,跟进程什么的没关系。那fastcgi又是什么呢?Fastcgi是用来提高CGI程序性能的。

FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。

提高性能,那么CGI 程序的性能问题在哪呢?"PHP解析器会解析php.ini文件,初始化执行环境",就是这里了。标准的 CGI 对每个请求都会执行这些步骤(不闲累啊!启动进程很累的说!),所以处理每个时间的时间会比较长。这明显不合理嘛!那么Fastcgi是怎么做的呢?首先,Fastcgi会先启一个master,解析配置文件,初始化执行环境,然后再启动多个worker。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。这样就避免了重复的劳动,效率自然是高。而且当worker不够用时,master可以根据配置预先启动几个worker等着;当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是fastcgi的对进程的管理。

那PHP-FPM又是什么呢?是一个实现了Fastcgi 的程序,被PHP官方收了。

大家都知道,PHP的解释器是php-cgi。php-cgi只是个CGI 程序,他自己本身只能解析请求,返回结果,不会进程管理(皇上,臣妾真的做不到啊!)所以就出现了一些能够调度php-cgi进程的程序,比如说由lighthttpd分离出来的spawn-fcgi。好了PHP-FPM也是这么个东东,在长时间的发展后,逐渐得到了大家的认可,也越来越流行。

PHP-CGI是解释PHP脚本的程序而已。

PHP-FPM是一个FastCGI 管理器

CGI 模式运行原理

当 Nginx 收到浏览器 /index.php 这个请求后,首先会创建一个对应实现了 CGI 协议的进程,这里就是 php-cgi(PHP 解析器)。接下来 php-cgi 会解析 php.ini 文件,初始化执行环境,然后处理请求,再以 CGI 规定的格式返回处理后的结果,退出进程。最后,Nginx 再把结果返回给浏览器。整个流程就是一个 Fork-And-Execute 模式。当用户请求数量非常多时,会大量挤占系统的资源如内存、CPU时间等,造成效能低下。所以在用 CGI 方式的服务器下,有多少个连接请求就会有多少个 CGI 子进程,子进程反复加载是 CGI 性能低下的主要原因。

--结束END--

本文标题: php中cgi是什么意思

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

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

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

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

下载Word文档
猜你喜欢
  • php中cgi是什么意思
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php中cgi是什么意思简单来说 CGI、 FastCGI只是一个协议而已, php-cgi 是实现cgi的程序, php-fpm是管理php-cgi的一个管理器而已...
    99+
    2020-04-25
    PHP
  • 电脑特效cgi全称是什么意思
    这篇文章主要介绍电脑特效cgi全称是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!电脑特效cgi全称“Computer-generated imagery”,中文意思为“电脑三维动画”,是指使用电脑产生的影像...
    99+
    2023-06-14
  • php中=是什么意思
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php中=是什么意思?PHP 中基础的赋值运算符是 "="。这意味着右侧赋值表达式会为左侧运算数设置值。如 z=x+y,右侧表达式为左侧运算数设置值。...
    99+
    2021-07-01
    php
  • PHP中AOP是什么意思
    小编给大家分享一下PHP中AOP是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是AOP?在应用开发中,我们经常发现需要很多功能,这些功能需要经常被分...
    99+
    2023-06-17
  • php中shuffle是什么意思
    这篇文章主要介绍“php中shuffle是什么意思”,在日常操作中,相信很多人在php中shuffle是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中shuffle是什么意思”的疑惑有所帮助!...
    99+
    2023-06-20
  • php中request是什么意思
    本篇内容介绍了“php中request是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!request的中文意思为“请求”,是php中...
    99+
    2023-06-20
  • php中 br 是什么意思
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php中 br 是什么意思?<br>和<br/>都是html标记语言,用于文本的换行,<br/>是<br>的规范写法,p...
    99+
    2017-08-29
    php br
  • php中null是什么意思
    本教程操作环境:windows10系统、PHP7.1版,DELL G3电脑php中null是什么意思一:null值是什么意思啊在php中NULL是一个特殊标记,NULL值表示一个变量没有值,NULL类型唯一可能的值就是NULL。在下列情况下...
    99+
    2018-02-05
    php
  • php中fgets是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP fgets是一种基于php语言开发的可以从文件指针中读取一行数据并返回数据的功能函数。fgets()函数用于从打开的文件中一次读取一行数据,该函数的语法格式如下...
    99+
    2022-02-13
    php fgets
  • PHP中construct是什么意思
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP中construct是什么意思PHP __construct() 函数__construct() 函数创建一个新的 SimpleXMLElement 对象。如果成功...
    99+
    2015-09-07
    PHP construct
  • php中result是什么意思
    本教程操作环境:windows10系统、PHP7.1版,DELL G3电脑php中result是什么意思mysql_result() 函数返回结果集中一个字段的值。如果成功,则该函数返回字段值。如果失败,则返回 false。语法mysql_...
    99+
    2016-04-24
    PHP
  • php中redis是什么意思
    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑Redis是Remote Dictionary Server(远程数据服务)的缩写,由意大利人Antirez(Salvatore Sanfilippo)开发的一款内存高...
    99+
    2020-11-20
    php redis
  • php中for是什么意思
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php中for是什么意思PHP for 循环执行代码块指定的次数。如果您已经提前确定脚本运行的次数,可以使用 for 循环。语法for (init counter; te...
    99+
    2016-05-19
    php for
  • 在php中-= 是什么意思
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑首先要知道在 PHP 中,基本的赋值运算符是 "="。它意味着左操作数被设置为右侧表达式的值。也就是说,"$x = 5" 的值是 ...
    99+
    2020-09-14
    -= php
  • php中$_FILES是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,“$_FILES”是一个预定义的数组变量。预定义变量又叫超全局变量,它们不需要提前声明就可以在所有的作用域中使用。通过这些预定义变量可以获取用户会话、用户操...
    99+
    2015-04-15
    php $_FILES
  • php中flock是什么意思
    在PHP中,flock是一个函数,表示的意思是锁定或者释放文件;该函数的作用是操作文件时锁定文件,只有取消锁定时才可用,如果成功则该函数返回true,如果失败则该函数返回false,语法为“flock(file,lock,block)”。本...
    99+
    2022-07-11
    php
  • php中warning是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑warning是PHP的一个报错级别,是非致命的,即,发生了该警告之后,其后的脚本仍能正常运行。表示在执行的过程中,PHP发现程序有些不合理的地方,从而提示出警告信息,...
    99+
    2018-11-02
    php warning 报错级别
  • php中mkdir是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php中mkdir是什么意思mkdir是PHP中的一个用于创建新目录的内置函数。有时侯我们需要在服务器上创建目录。比如创建以当天日期为名字的目录来备份数据,或者创建以注...
    99+
    2018-03-20
    php mkdir
  • php中session_start()是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,session_start()的意思为“开始会话”。语法:session_start(array $options = array()): boolsess...
    99+
    2017-12-16
    php session_start()
  • php中gc是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,gc全称“Garbage Collection”,中文意思为“垃圾回收”,是一种动态内存管理机制。垃圾回收机制(GC)会自动释放程序不再需要的已分配的内存块...
    99+
    2020-07-10
    php gc 垃圾回收机制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作