【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!
CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,大年夜网页浏览器向履行在Web办事器上的法度榜样请求数据。 CGI描述了客户端和这个法度榜样之间传输数据的一种标准。 CGI的一个目标是要自力于任何说话的,所以CGI可以用任何一种说话编写,只要这种说话具有标准输入、输出和情况变量。 如php,perl,tcl等。
FastCGI是Web办事器和处理法度榜样之间通信的一种协定, 是CGI的一种改进筹划,FastCGI像是一个常驻(long-live)型的CGI, 它可以一向履行,在请求达到时不会花费时光去fork一个过程来处理(这是CGI最为人诟病的fork-and-execute模式)。 恰是因为他只是一个通信协定,它还支撑分布式的运算,即 FastCGI 法度榜样可以在网站办事器以外的主机上履行并且接收来自其它网站办事器来的请求。
FastCGI的长处:
- PHP脚本运行速度更快(3到30倍)。PHP解释法度榜样被载入内存而不消每次须要时大年夜存储器攫取,极大年夜的晋升了依附脚本运行的┞肪点的机能。
- 须要应用更少的体系资本。因为办事器不消每次须要时都载入PHP解释法度榜样,你可以将站点的传输速度晋升很高而不必增长cpu包袱。
- 不须要对现有的代码作任何改变。现有的一切都实用于PHP的FastCGI。
FastCGI是说话无关的、可伸缩架构的CGI开放扩大,将CGI说冥器过程保持在内存中,以此获得较高的机能。 CGI法度榜样反复加载是CGI机能低下的重要原因,如不雅CGI法度榜样保持在内存中并接收FastCGI过程治理器调剂, 则可以供给优胜的机能、伸缩性、Fail-Over特点等。
PHP的CGI实现了Fastcgi协定,是一个TCP或UDP协定的办事寡居收来自Web办事器的请求, 当启动时创建TCP/UDP协定的办事器的socket监听,并接收相干请求进行处理。随后就进入了PHP的生命周期: 模块初始化,sapi初始化,处理PHP请求,模块封闭,sapi封闭等就构成了全部CGI的生命周期。
以TCP为例,在TCP的办事端,一般会履行如许几个操作步调:
- 调用socket函数创建一个TCP用的流式套接字;
- 调用bind函数将办事器的本地地址与前面创建的套接字绑定;
- 调用listen函数将新创建的套接字作为监听,等待客户端提议的连接,当客户端有多个连接连接到这个套接字时,可能须要列队处理;
- 办事器过程调用accept函数进入壅塞状况,直到有客户过程调用connect函数而建立起一个连接;
- 当与客户端创建连接后,办事器调用read_stream函数攫取客户的请求;
- 处理完数据后,办事器调用write函数向客户端发送应答。

PHP的FastCGI使你的所有php应用软件经由过程mod_fastci运行,而不是mod_phpsusexec。FastCGI应用速度很快是因为他们持久稳定,不必对每一个请求都启动和初始化。这使得应用法度榜样的开辟成为可能,不然在CGI典范是不切实际的(例如一个大年夜型的脚本,或者一个须要 连接单个或多个数据库的应用)。
一般情况下,FastCGI的┞符个工作流程是如许的:
- Web Server启动时载入FastCGI过程治理器(IIS ISAPI或Apache Module)
- FastCGI过程治理器自身初始化,启动多个CGI说冥器过程(可见多个php-cgi)并等待来自Web Server的连接。
- 当客户端请求达到Web Server时,FastCGI过程治理器选择并连接到一个CGI说冥器。 Web server将CGI情况变量和标准输入发送到FastCGI子过程php-cgi。
- FastCGI子过程完成处理后将标准输出和缺点信息大年夜同连续接返回Web Server。当FastCGI子过程封闭连接时, 请求便告处理完成。FastCGI子过程接着等待并处理来自FastCGI过程治理器(运行在Web Server中)的下一?连接。 在CGI模式中,php-cgi在此便退出了。
然则也会有潜在问题:
- 对所有的子目次(/home/USERNAME/public_html/php.ini)你只有一个可用的php.ini文件。这是优化网站代码所必须的。如不雅你须要多个php.ini文件以适应不合的脚本须要,你可以在任何子目次禁用PHP的快速CGI,而其余的处所则持续有效。如不雅你须要如许做请接洽support。
- 你对PHP情况做的任何进级(如php.ini文件的改变)都有几分钟的延迟。这是因为为了更快的速度你的php.ini文件已经被载入内存,而不是每次须要时再大年夜存储看从新攫取。
【编辑推荐】
- 暴雪的成功路线:摸索跨游戏营销
- 多维度摸索HTML5技巧 打造最佳应用体验干货分享
- 那些爆笑的法度榜样员梗 PHP是最好的说话
- 一周歪评:霾过晴和,像苹不雅开源一样拥抱php7.0
- 话说PHP的Memcache & Memcached这两个扩大之间的关系,你都摸清跋扈了吗?
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 一、游戏办事器特点游戏办事器,是一个会经久运行法度榜样,并且它还要办事于多个不准时,不定点的收集请>>>详细阅读
本文标题:PHP内核探索:PHP的FastCGI
地址:http://www.17bianji.com/lsqh/36302.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示