FastCGI是语言无关的、可伸缩架构的CGI开放扩展,在系统中一般只有一个lighttpd进程响应服务请求

什么是CGI

PHP+lghttpd + postgresql 蒙受搭建

  CGI全称是“公共网关接口”(Common Gateway Interface卡塔尔,HTTP服务器与您的或任何机器上的次序实行“交谈”的意气风发种工具,其前后相继须运营在网络服务器上。

 

  CGI能够用其它风华正茂种语言编写,只要这种语言具备专门的学业输入、输出和情状变量。如php,perl,tcl等

Linux 下PHP意况搭建

什么是FastCGI

设置意况:PHP+lghttpd + postgresql

  法斯特CGI疑似二个常驻(long-live卡塔尔(قطر‎型的CGI,它能够直接试行着,只要激活后,不会每回都要费用时间去fork一遍(那是CGI最为人诟病的fork-and-execute 格局卡塔尔国。它还援助布满式的演算, 即 法斯特CGI 程序能够在网址服务器以外的主机上施行何况选择来自此外网址服务器来的央求。

1:yum install lighttpd

  法斯特CGI是语言无关的、可伸缩构造的CGI开放扩张,其主要性表现是将CGI解释器进度保持在内部存款和储蓄器中并由此获得较高的性质。名门望族,CGI解释器的一再加载是CGI品质低下的第大器晚成原因,假如CGI解释器保持在内部存款和储蓄器中并收受FastCGI进度微处理机调节,则足以提供精美的品质、伸缩性、Fail- Over天性等等。

Red Banner自带apache2作为默许的web服务器。在原本的种类中正是行使apache作为web页面包车型大巴服务器,apache占用的内部存款和储蓄器比相当多,壹个apache进度占用的内部存款和储蓄器差不离是20M,最大的或是占到35M上述,占用的分享内部存款和储蓄器都在100多M以上。何况apache是四个多进程响应服务,那样apache的历程占用内存更加多。因而经短时间运作,会产出是因为内部存款和储蓄器缺乏而不可能访谈分界面包车型大巴景观。

FastCGI与CGI特点

   lighttpd是一个大好的替代方案。其是两个相当轻巧的web服务器,尽管它的效应还没apache强盛,然而足以满意当先四分之二的服必得要。它的内部存款和储蓄器占用量经常是2M左右,占用的分享内部存款和储蓄器是20M左右,何况与apache达成机制分裂的是,lighttpd采纳单进程多路复用的格局响应要求,在系统中貌似唯有一个lighttpd进度响应服务央求。(也可配置为多进程)所以从内部存款和储蓄器占用量的角度看,lighttpd就有一点都不小的优势。别的,lighttpd也足以因而布署fast-cgi扶持php应用。

  1、如CGI,法斯特CGI也负有语言非亲非故性.

参照:

  2、如CGI, 法斯特CGI在进程中的应用程序,独立于宗旨web服务器运维,提供了七个比API更安全的情状。(APIs把应用程序的代码与核心的web服务器链接在一齐,那意味着在三个荒谬的API的应用程序或许会毁掉别的应用程序或宗旨服务器; 恶意的API的应用程序代码以至能够盗取另一个应用程序或骨干服务器的密钥。State of Qatar

 

  3、FastCGI本事近年来支持语言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等。相关模块在Apache, ISS, Lighttpd等风靡的服务器上也是可用的。

2:yum install fcgi lighttpd-fastcgi

  4、如CGI,法斯特CGI的不正视于任何Web服务器的中间结构,因而尽管服务器手艺的生成, 法斯特CGI照旧平静不改变。

 

法斯特CGI的办事规律
  
  1、Web Server运营时载入法斯特CGI进度微处理机(IIS ISAPI或Apache ModuleState of Qatar
  
  2、法斯特CGI进程微电脑本身初阶化,运行多少个CGI解释器进程(可知五个php-cgi卡塔尔(قطر‎并听候来自Web Server的连天。
  
  3、当顾客端乞求达到Web Server时,法斯特CGI进程管理器采取并连接到三个CGI解释器。Web server将CGI境况变量和行业内部输入发送到法斯特CGI子进度php-cgi。
  
  4、法斯特CGI子进程实现管理后将规范输出和错误音讯从同三回九转接重临Web Server。当法斯特CGI子进度关闭连接时,央浼便告管理完了。法斯特CGI子进度接着等待并管理来自法斯特CGI进度微型机(运转在Web Server中卡塔尔的下二个接二连三。 在CGI方式中,php-cgi在这里便退出了。
  
  在上述情形中,你能够设想CGI日常常有多慢。种种Web诉求PHP都一定要另行深入分析php.ini、重新载入全部扩充一视同仁开始化全体数据构造。使用法斯特CGI,全体那个都只在经过运营时爆发一回。一个附加的利润是,持续数据库连接(Persistent database connection卡塔尔国可以干活。

什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI

FastCGI的不足

  因为是多进度,所以比CGI四线程消耗越来越多的服务器内部存储器,PHP-CGI解释器每经过消耗7至25兆内部存款和储蓄器,将这些数字乘以50或100正是非常大的内部存款和储蓄器数。
  
  Nginx 0.8.46+PHP 5.2.14(法斯特CGI卡塔尔(قطر‎服务器在3万并发连接下,开启的十一个Nginx进度消耗150M内部存款和储蓄器(15M*10=150M),开启的63个php-cgi进程消耗1280M内部存储器(20M*64=1280M),加上系统自己消耗的内部存款和储蓄器,总共消耗不到2GB内部存款和储蓄器。如若服务器内部存款和储蓄器一点都不大,完全能够只开启二十三个php-cgi进度,那样php-cgi消耗的总内部存款和储蓄器数才500M。

 CGI全称是“公共网关接口”(Common Gateway Interface卡塔尔,HTTP服务器与您的或别的机器上的顺序实行“交谈”的意气风发种工具,其前后相继须运营在网络服务器上。

  上边的数额摘自Nginx 0.8.x + PHP 5.2.13(法斯特CGI卡塔尔搭建赶上Apache十倍的Web服务器(第6版State of Qatar

CGI能够用任何风度翩翩种语言编写,只要这种语言具备标准输入、输出和境遇变量。如php,perl,tcl等

什么是PHP-CGI

  什么是FastCGI

  PHP-CGI是PHP自带的FastCGI管理器。
  运转PHP-CGI,使用如下命令:
复制代码 代码如下:
php-cgi -b 127.0.0.1:9000

法斯特CGI像是二个常驻(long-live卡塔尔(قطر‎型的CGI,它能够一贯进行着,只要激活后,不会每一回都要耗时去fork三次(那是CGI最为人诟病的fork-and-execute 形式卡塔尔国。它还扶助布满式的运算, 即 法斯特CGI 程序能够在网址服务器以外的主机上实践何况选取来自其余网址服务器来的号召。

PHP-CGI的不足

FastCGI是言语毫无干系的、可伸缩构造的CGI开放扩充,其重视作为是将CGI解释器过程保持在内部存款和储蓄器中并据此得到较高的属性。有目共睹,CGI解释器的屡次加载是CGI品质低下的主要性缘由,借使CGI解释器保持在内部存款和储蓄器中并选用法斯特CGI进度微处理机调解,则足以提供能够的习性、伸缩性、Fail- Over个性等等。

  1、php-cgi改换php.ini配置后需重启php-cgi能力让新的php-ini生效,不得以平滑重启

  FastCGI与CGI特点

  2、直接杀死php-cgi进度,php就不能够运作了。(PHP-FPM和Spawn-FCGI就从不这一个难题,守护进度会平滑从新兴成新的子进度。)

  1、如CGI,法斯特CGI也具备语言毫不相关性.

  什么是PHP-FPM

  2、如CGI, 法斯特CGI在进度中的应用程序,独立于宗旨web服务器运营,提供了一个比API更安全的条件。(APIs把应用程序的代码与基本的web服务器链接在一块儿,那意味在一个谬误的API的应用程序恐怕会破坏其他应用程序或骨干服务器; 恶意的API的应用程序代码以致足以偷取另一个应用程序或基本服务器的密钥。卡塔尔(قطر‎

  PHP-FPM是三个PHP FastCGI微电脑,是只用于PHP的,能够在 .

  3、法斯特CGI技巧近些日子扶助语言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等。相关模块在Apache, ISS, Lighttpd等风靡的服务器上也是可用的。

  PHP-FPM其实是PHP源代码的一个补丁,目的在于将法斯特CGI进度管理结合进PHP包中。必需将它patch到您的PHP源代码中,在编写翻译安装PHP后才足以动用。

  4、如CGI,法斯特CGI的不依附于其余Web服务器的内部结构,因而即便服务器本事的改造, 法斯特CGI依然稳固不变。

  今后我们得以在风行的PHP 5.3.2的源码树里下载得到第一手整合了PHP-FPM的分层,据他们说下个版本会融入进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内部存款和储蓄器方面包车型地铁支配都更胜一筹,并且前面八个超级轻巧崩溃,必得用crontab进行监察,而PHP-FPM则尚未这种一点也不快。

法斯特CGI的行事规律

  PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了越来越好的PHP进度管理章程,能够使得调节内存和经过、能够平滑重载PHP配置,比spawn-fcgi具备越来越多有一些,所以被PHP官方收音和录音了。在./configure的时候带 –enable-fpm参数就能够开启PHP-FPM。

  1、Web Server运维时载入法斯特CGI进度微机(IIS ISAPI或Apache Module卡塔尔国

  使用PHP-FPM来控制PHP-CGI的FastCGI进程
复制代码 代码如下:
/usr/local/php/sbin/php-fpm{start|stop|quit|restart|reload|logrotate}

  2、法斯特CGI进程微电脑本人最初化,运营四个CGI解释器进度(可以预知多少个php-cgi卡塔尔(قطر‎并等候来自Web Server的总是。

--start 启动php的fastcgi进程
--stop 免强结束php的fastcgi进度
--quit 平滑终止php的fastcgi进程
--restart 重启php的fastcgi进程
--reload 重新平整加载php的php.ini
--logrotate 重新启用log文件

  3、当客户端要求达到Web Server时,法斯特CGI进度微处理机选拔并三番五次到二个CGI解释器。Web server将CGI蒙受变量和正规输入发送到法斯特CGI子进度php-cgi。

什么是Spawn-FCGI

  4、法斯特CGI子进度达成管理后将标准输出和错误消息从同接二连三接再次来到Web Server。当法斯特CGI子进度关闭连接时,诉求便告处理到位。法斯特CGI子进度接着等待并拍卖来自法斯特CGI进度微处理机(运维在Web Server中卡塔尔国的下三个接连。 在CGI情势中,php-cgi在这里便脱离了。

  Spawn-FCGI是一个通用的法斯特CGI管理服务器,它是lighttpd中的大器晚成部份,很三人都用Lighttpd的Spawn-FCGI进行法斯特CGI方式下的处总管业,可是有这一个劣点。而PHP-FPM的面世略略减轻了有些主题素材,但PHP-FPM有个毛病就是要重复编写翻译,那对于某些早已运营的条件恐怕有相当的大的高危害(refer卡塔尔,在php 5.3.3中能够间接使用PHP-FPM了。

  在上述情状中,你能够想像CGI平时有多慢。每二个Web恳求PHP都必须要再一次深入分析php.ini、重新载入全体恢宏天公地道最初化全部数据布局。使用法斯特CGI,全体那几个都只在经过运维时发生贰遍。八个万分的益处是,持续数据库连接(Persistent database connection卡塔尔国能够干活。

  Spawn-FCGI近日早就独成为一个等级次序,越发安宁一些,也给众多Web 站点的安排带给有利。已经有那三个站点将它与nginx搭配来解决动态网页。

FastCGI的不足

  最新的lighttpd也向来不包涵这一块了()

因为是多进度,所以比CGI四十八线程消耗更加多的服务器内部存款和储蓄器,PHP-CGI解释器每经过消耗7至25兆内部存款和储蓄器,将以此数字乘以50或100正是相当大的内部存款和储蓄器数。

  近些日子Spawn-FCGI的下载地址是

  Nginx 0.8.46+PHP 5.2.14(法斯特CGI卡塔尔国服务器在3万并发连接下,开启的十一个Nginx进度消耗150M内存(15M*10=150M),开启的陆拾个php-cgi进程消耗1280M内部存款和储蓄器(20M*64=1280M),加上系统本人消耗的内存,总共消耗不到2GB内部存款和储蓄器。如若服务器内部存款和储蓄器比较小,完全能够只开启二十四个php-cgi进度,这样php-cgi消耗的总内部存储器数才500M。

  注:最新的Spawn-FCGI能够到lighttpd.net网址寻找“Spawn-FCGI”找到它的最新版本公布地点

  下边包车型地铁多少摘自Nginx 0.8.x + PHP 5.2.13(法斯特CGIState of Qatar搭建赶上Apache十倍的Web服务器(第6版State of Qatar

  下边大家就足以选择Spawn-FCGI来支配php-CGI的FastCGI进程了
复制代码 代码如下:
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-CGI

        

参数含义如下:

什么是PHP-CGI

  -f 钦点调用法斯特CGI的长河的施行顺序地方,依照系统上所装的PHP的事态具体设置
  -a 绑定到地方addr
  -p 绑定到端口port
  -s 绑定到unix socket的路径path
  -C 钦命发生的FastCGI的历程数,默感觉5(仅用于PHP卡塔尔
  -P 钦命发生的进程的PID文件路线
  -u和-g 法斯特CGI使用什么身份(-u 顾客 -g 顾客组卡塔尔国运维,Ubuntu下得以采纳www-data,别的的依附事态计划,如nobody、apache等

  PHP-CGI是PHP自带的FastCGI管理器。

  PHP-FPM与spawn-CGI相比较测验

  运维PHP-CGI,使用如下命令:php-cgi -b 127.0.0.1:9000

  PHP-FPM的行使十二分便利,配置都是在PHP-FPM.ini的公文内,而运营、重启都得以从php/sbin/PHP-FPM中开展。更方便的是纠正php.ini后方可平素动用PHP-FPM reload举行加载,不供给杀掉进程就可以产生php.ini的退换加载
结果呈现使用PHP-FPM能够使php有非常大的习性提高。PHP-FPM调整的经过cpu回笼的速度比异常的快,内存分配的很均匀。

  PHP-CGI的不足

  Spawn-FCGI调整的历程CPU下跌的短平快,而内部存款和储蓄器分配的可比不均匀。有过多进程好似未分配到,而除此以外一些却据有相当高。只怕是由于经过任务分配的不均匀引致的.而那也促成了意气风发体化响应速度的下滑。而PHP-FPM合理的分红,招致全部响应的涉及以致任务的平均。

  1、php-cgi更动php.ini配置后需重启php-cgi能力让新的php-ini生效,不可能平滑重启

  PHP-FPM与Spawn-FCGI功用比较

  2、直接杀死php-cgi进度,php就无法运作了。(PHP-FPM和Spawn-FCGI就不曾这几个题目,守护进度会平滑从新兴成新的子进度。)

  

  什么是PHP-FPM

  PHP-FPM、Spawn-FCGI都以医生和护师php-cgi的经过微型机。

  PHP-FPM是一个PHP 法斯特CGI微处理器,是只用于PHP的,能够在 .

  参谋文书档案:

  PHP-FPM其实是PHP源代码的一个补丁,目的在于将法斯特CGI进度管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编写翻译安装PHP后才得以应用。

  
  
  
  
  
  
  
  

  现在大家得以在最新的PHP 5.3.2的源码树里下载获得第一手整合了PHP-FPM的分支,听闻下个版本会融入进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内部存款和储蓄器方面包车型地铁主宰都更胜一筹,何况前者相当轻易崩溃,必需用crontab举行监督检查,而PHP-FPM则没有这种超级慢。

  PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了越来越好的PHP进程管理情势,能够使得调控内存和进程、能够平滑重载PHP配置,比spawn-fcgi具备更加多有一点点,所以被PHP官方收音和录音了。在./configure的时候带 –enable-fpm参数就能够开启PHP-FPM。

使用PHP-FPM来控制PHP-CGI的FastCGI进
            /usr/local/php/sbin/php-fpm{start|stop|quit|restart|reload|logrotate}

--start  启动php的fastcgi进程

--stop 强逼结束php的fastcgi进程

--quit 平滑终止php的fastcgi进程

--restart 重启php的fastcgi进程

--reload 重新平整加载php的php.ini

--logrotate 重新启用log文件

  什么是Spawn-FCGI

  Spawn-FCGI是七个通用的法斯特CGI管理服务器,它是lighttpd中的意气风发部份,超级多少人都用Lighttpd的Spawn-FCGI实行法斯特CGI情势下的处监护人业,可是有众多欠缺。而PHP-FPM的产出稍稍减轻了一些标题,但PHP-FPM有个毛病正是要双重编写翻译,那对于部分已经运转的碰着也是有相当大的高危害(refer卡塔尔,在php 5.3.3中得以一向采纳PHP-FPM了。

  Spawn-FCGI近年来朝气蓬勃度独成为三个门类,越发安定一些,也给非常多Web 站点的配置带来便利。已经有众多站点将它与nginx搭配来减轻动态网页。

  最新的lighttpd也平昔不富含这一块了( 但能够在早先版本中找到它。在lighttpd-1.4.15版本中就包罗了()

  近来Spawn-FCGI的下载地址是

  注:最新的Spawn-FCGI能够到lighttpd.net网址搜索“Spawn-FCGI”找到它的新颖版本发表地方

  上面大家就足以应用Spawn-FCGI来调控php-CGI的法斯特CGI进度了
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-CGI

  参数含义如下:

  -f 钦定调用法斯特CGI的进度的施行顺序地点,依据系统上所装的PHP的状态具体设置

  -a 绑定到地点addr

  -p 绑定到端口port

  -s 绑定到unix socket的路径path

  -C 内定爆发的法斯特CGI的长河数,默感觉5(仅用于PHPState of Qatar

  -P 钦定产生的历程的PID文件路线

  -u和-g 法斯特CGI使用什么地位(-u 客户 -g 顾客组State of Qatar运维,Ubuntu下能够使用www-data,其余的依附事态安插,如nobody、apache等

  PHP-FPM与spawn-CGI相比测量试验

  PHP-FPM的应用特别方便,配置都以在PHP-FPM.ini的文本内,而运维、重启都能够从php/sbin/PHP-FPM中举办。更有益于的是修正php.ini后得以直接行使PHP-FPM reload进行加载,没有需求杀掉进程就足以成功php.ini的修正加载结果展现使用PHP-FPM可以使php有超级大的属性进步。PHP-FPM调控的历程cpu回笼的进度很慢,内部存款和储蓄器分配的很均匀。

  Spawn-FCGI调控的进度CPU下落的短平快,而内部存款和储蓄器分配的相比较不均匀。有成千上万进度仿佛未分配到,而其它一些却占领超高。大概是出于经过职务分配的不均匀引致的.而那也招致了全部响应速度的下落。而PHP-FPM合理的分配,引致全部响应的关联以致职分的平分。

  PHP-FPM与Spawn-FCGI作用比较

  

  PHP-FPM、Spawn-FCGI都以守护php-cgi的进度微机。

  参谋文书档案:

  

  

  

  

  

  

  

 

#yum install mysql mysql-server

#yum install php

#yum install postgresql

#yum install phpmyadmin phppgadmin pgadmin3

安装完成

简单铺排

lighttpd、mysql的停下运转命令(root身份实践)

#/etc/init.d/linghttpd start

#/etc/init.d/mysqld start

机关运行的安装

#chkconfig --level 345 mysqld on

#chkconfig --level 345 lighttpd on

 

配置lighttpd

 

#vi /usr/local/lighttpd/etc/lighttpd.conf

修改一下剧情

---------------- 加载cgi,fastcgi模块-------------

14 server.modules              = (

 15                                 "mod_rewrite",

 16 #                               "mod_redirect",

 17 #                               "mod_alias",

 18                                 "mod_access",

 19 #                               "mod_cml",

 20 #                               "mod_trigger_b4_dl",

 21 #                               "mod_auth",

 22 #                               "mod_status",

 23 #                               "mod_setenv",

 24                                 "mod_fastcgi",

 25 #                               "mod_proxy",

 26 #                               "mod_simple_vhost",

 27 #                               "mod_evhost",

 28 #                               "mod_userdir",

 29                                 "mod_cgi",

 30 #                               "mod_compress",

 31 #                               "mod_ssi",

 32 #                               "mod_usertrack",

 

----------------------------网址根目录---------------------------------

 38 ## a static document-root, for virtual-hosting take look at the

 39 ## server.virtual-* options

 40 server.document-root        = "/var/www/lighttpd/"

 

----------------------------日志目录------------------------------

42 ## where to send error-messages to

 43 server.errorlog             ="/var/log/lighttpd/error.log"

.....

.....

115 #### accesslog module

116 accesslog.filename          = "/var/log/lighttpd/access.log"

 

-----------------------------暗中认可首页格式-------------------------

 45 # files to check for if .../ is requested

 46 index-file.names            = ( "index.php", "index.html",

 47                                 "index.htm", "default.htm" )

 

-----------------------------FastCgi模块---------------------------

## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini

fastcgi.server  = ( ".php" =>

                   ( "localhost" =>

                                    (

                              "socket"=> /var/run/lighttpd/php-fastcgi.socket",
                                                                                                            "bin-path" => "/usr/bin/php-cgi"

                            )

                        )

                 )

 

 

------------------------------CGI模块----------------------------------

#### CGI module

cgi.assign                 = (

                                ".sh" => "/bin/bash",

                                ".pl"  => "/usr/bin/perl",

                               ".cgi" => "/usr/bin/perl"

                                )

 

5 修改php.ini

设置 cgi.fix_pathinfo = 1

 

6 布局实现,重起lighttpd

# /etc/init.d/lighttpd restart

 

测试

index.php 内容

# cat /var/www/lighttpd/test.php

 

phpinfo();

echo "ndajia hao n";

echo "学生们 ,有人炒盐了,十元钱意气风发袋n";

?>

test.html

# cat /var/www/lighttpd/index.php

 

.....

............

 ximo sias web started
###添加的

 西默实验室的同窗们,大家的web服务器运转了
###添加的

.................

 

在浏览器中分头输入

本文由美高梅4688官方网站发布于美高梅4688官方网站,转载请注明出处:  FastCGI是语言无关的、可伸缩架构的CGI开放扩展,在系统中一般只有一个lighttpd进程响应服务请求

您可能还会对下面的文章感兴趣: