条件搭建

PHP-CGI(实现了FastCGI的程序)

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

PHP-CGI的不足:

php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不得以平滑重启。

直白杀死php-cgi进度,php就不可以运作了。(PHP-FPM和Spawn-FCGI就从未那个题材,守护过程会平滑从新兴成新的子进度。)


#yum install mysql mysql-server

PHP-FPM(实现了FastCGI的程序)

PHP-FPM是三个PHP 法斯特CGI管理器,是只用于PHP的。化解了php-cgi的有的题材。

PHP5.3.3已经集成php-fpm了,不再是第②方的包了。PHP-FPM提供了更好的PHP进度管理措施,可以有效控制内存和进度、可以平滑重载PHP配置,比spawn-fcgi具有更加多有点,所以被PHP官方收录了。在./configure的时候带
–enable-fpm参数即可打开PHP-FPM

CGI方式是每一个请求fork贰个子进程,然后再销毁.高频度的拜访下,频仍的fork暴发额外的种类开发,限制了处理能力,所以在apache下跑php一般都以内嵌模块的格局(mod_php)

话说CGI还有一种变种FASTCGI, 为了缓解CGI的那种缺陷,
大约是上世纪90时期中叶出现了FASTCGI, 以常驻进程的章程提供CGI服务,

只是大半与此同时,apache有了mod_perl,
mod_php等模块,质量一般对比有优势,大家都喜欢用这种方法,
所以fastcgi没立马火起来。

  下边的数目摘自Nginx 0.8.x + PHP
5.2.13(法斯特CGI)搭建胜过Apache十倍的Web服务器(第陆版)

拍卖步骤:

⑴通过Internet把用户请求送到web服务器

⑵web服务器收到用户请求并交付CGI程序处理。

⑶CGI程序把处理结果传送给web服务器。

⑷web服务器把结果送回去用户。

  http://topic.csdn.net/u/20101015/19/8ae74452-ec6b-448e-9942-21faeb008cd7.html

CGI(二个磋商)
是web服务器和外部应用程序(cgi程序)之间的接口标准,是cgi程序和web服务器之间传递消息的归程。

 

  http://www.unixaid.info/index.php/productsapp/23-servsf/842-spawn-fcgi

干活原理:

1.浏览器通过HTML表单超链接请求指向2个CGI应用程序的ULANDL。

2.服务器收发到请求。

3.服务器执行钦命所CGI应用程序。

4.CGI应用程序执行所急需的操作,平时是依照浏览者输入的内容。

5.CGI应用程序把结果格式化为互连网服务器和浏览器可以清楚的文档(平时是HTML网页)。

6.网络服务器把结果重临到浏览器中。

最低水平,PHP可以做其余其余CGI程序所能做的事,例如收集表格数据,生成动态页面内容,恐怕收发cookies.只怕最有力,最有含义的特性是PHP支持大范围的数额库.书写壹个援救数据库的Web
页面是可疑的简便。

  最新的lighttpd也尚未包括这一块了(http://www.lighttpd.net/search?q=Spawn-FCGI),
但可以在在此此前版本中找到它。在lighttpd-1.4.15版本中就包涵了(http://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz)

cgi

  未来大家得以在新式的PHP
5.3.2的源码树里下载得到第②手整合了PHP-FPM的道岔,据书上说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的操纵都更胜一筹,而且前者很不难崩溃,必须用crontab举办监察,而PHP-FPM则从未那种不快。

cgi程序是由用户的输入触发的,运维在web服务器上的主次。CGI是在HTTP服务器下运转外部程序(或网关)的贰个接口,它能让网络用户访问远程系统上的利用项目程序,就如他们在实质上运用那么些中远距离计算机一样。

?>

cgi

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


 ximo sias web started
###添加的

在大体上是一段程序,运转在服务器上,提供同客户端HTML页面的接口。这样说大约还不佳领会。那么大家看1个实际上例子:以后的个人主页上多数都有多个留言本。留言本的办事是如此的:先由用户在客户端输入一些音讯,如名字之类的东西。接着用户按一下“留言”(到如今截止工作都在客户端),浏览器把那个消息传送到服务器的CGI目录下一定的cgi程序中,于是cgi程序在服务器上遵守预订的方法举办拍卖。在本例中就是把用户提交的音信存入指定的文件中。然后cgi程序给客户端发送2个音讯,表示请求的义务已经截止。此时用户在浏览器里将看到“留言为止”的字样。整个进程为止。

 28 #                               “mod_userdir”,

法斯特CGI(两个商事)

CGI 的性质缺点:web server 拿到3个request
后,会fork三个子进度,然后子进程执行cgi程序。那象征
如若N个请求并发访问同一cgi
程序,那么该程序会被装载入内存N次。cgi进度的往往加载造成了cgi的性质低下。

法斯特CGI
就是二个常驻型(long-live)的cgi。它的首要表现是将cgi解释器进度保存在内存中以取得较高的属性。

做事原理:

① 、Web
Server运营时载入法斯特CGI进度管理器(IIS
ISAPI或Apache Module)

贰 、法斯特CGI进程管理器自己初阶化,运营七个CGI解释器进度(可知三个php-cgi)并等候来自Web
Server的总是。

三 、当客户端请求到达Web
Server时,FastCGI进度管理器采用并延续到3个CGI解释器。Web
server将CGI环境变量和规范输入发送到法斯特CGI子进度php-cgi。

④ 、法斯特CGI子进度达成处理后将正式输出和错误音讯从同延续接重临Web
Server。当法斯特CGI子进度关闭连接时,请求便告处理达成。法斯特CGI子进度接着等待并处理来自法斯特CGI进度管理器(运维在Web
Server中)的下3个总是。
在CGI方式中,php-cgi在此便退出了。

在上述景况中,你可以设想CGI常常有多慢。每2个Web请求PHP都无法不另行分析php.ini、重新载入全体扩张仁同一视伊始化全部数据结构。使用法斯特CGI,全部那些都只在进程运营时暴发三遍。三个额外的裨益是,持续数据库连接(Persistent
database connection)可以干活。


–logrotate 重新启用log文件

  PHP-FPM与spawn-CGI相比测试

                        )

 

 

  在上述情形中,你可以想象CGI常常有多慢。每3个Web请求PHP都必须重新分析php.ini、重新载入全体扩充仁同一视初阶化全体数据结构。使用法斯特CGI,全数这个都只在经过运营时发生五遍。一个外加的功利是,持续数据库连接(Persistent
database connection)可以干活。

  Spawn-FCGI目前曾经独成为一个种类,越发平静一些,也给许多Web
站点的配备带来便利。已经有无数站点将它与nginx搭配来消除动态网页。

  -a 绑定到地方addr

自行运营的设置

 31 #                               “mod_ssi”,

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

                                    (

#### CGI module

进步自带apache2作为暗许的web服务器。在原先的系列中就是采用apache作为web页面的服务器,apache占用的内存很多,一个apache进度占用的内存大概是20M,最大的恐怕占到35M上述,占用的共享内存都在100多M以上。而且apache是1个多进度响应服务,那样apache的进度占用内存更加多。因而经短期运作,会合世由于内存不够而不或者访问界面的状态。

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

42 ## where to send error-messages to

  PHP-CGI的不足

 30 #                               “mod_compress”,

 16 #                               “mod_redirect”,

                   ( “localhost” =>

115 #### accesslog module

  ② 、如CGI,
法斯特CGI在经过中的应用程序,独立于大旨web服务器运维,提供了一个比API更安全的条件。(APIs把应用程序的代码与大旨的web服务器链接在一块,那意味着在3个指鹿为马的API的应用程序只怕会毁掉其余应用程序或宗旨服务器;
恶意的API的应用程序代码甚至足以窃取另三个应用程序或骨干服务器的密钥。)

–restart 重启php的fastcgi进程

  注:最新的Spawn-FCGI可以到lighttpd.net网站搜索“Spawn-FCGI”找到它的风靡版本公布地方

参照:http://blogold.chinaunix.net/u3/109488/showart_2142285.html

  PHP-FPM是二个PHP 法斯特CGI管理器,是只用于PHP的,可以在
http://php-fpm.org/download下载得到.

–quit 平滑终止php的fastcgi进程

 40 server.document-root        = “/var/www/lighttpd/”

…..

测试

  http://baike.baidu.com/view/641394.htm

法斯特CGI的行事规律

 19 #                               “mod_cml”,

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

  http://club.topsage.com/thread-768488-1-1.html

 

  Spawn-FCGI控制的长河CPU下落的便捷,而内存分配的相比较不均匀。有广大经过就像是未分配到,而除此以外一些却占有很高。大概是由于经过义务分配的不均匀导致的.而这也促成了一体化响应速度的降低。而PHP-FPM合理的分红,导致全部响应的涉嫌以及义务的平分。

  -C 钦点暴发的法斯特CGI的进度数,默认为5(仅用于PHP)

  Spawn-FCGI是二个通用的法斯特CGI管理服务器,它是lighttpd中的一部份,很多个人都用Lighttpd的Spawn-FCGI进行法斯特CGI情势下的管理工作,但是有诸多欠缺。而PHP-FPM的产出略微缓解了部分标题,但PHP-FPM有个毛病就是要双重编译,那对于部分已经运营的条件大概有不小的高风险(refer),在php
5.3.3中可以直接采用PHP-FPM了。

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

#/etc/init.d/mysqld start

 

phpinfo();

  http://topic.csdn.net/u/20100216/22/5809e272-6f67-4248-bde9-99deeae5215b.html

  近日Spawn-FCGI的下载地址是http://redmine.lighttpd.net/projects/spawn-fcgi,最新版本是http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz

 

  什么是PHP-FPM

  FastCGI与CGI特点

–stop 强制截止php的fastcgi进度

                 )

  什么是Spawn-FCGI

…………

echo “\ndajia hao \n”;

                                )

  http://baike.baidu.com/view/32614.htm

  参考文档:

#yum install phpmyadmin phppgadmin pgadmin3

#chkconfig –level 345 mysqld on

fastcgi.server  = ( “.php” =>

#yum install postgresql

  一 、Web Server运转时载入法斯特CGI进度管理器(IIS ISAPI或Apache Module)

  Nginx 0.8.46+PHP
5.2.14(法斯特CGI)服务器在3万并发连接下,开启的十个Nginx进度消耗150M内存(15M*10=150M),开启的6四个php-cgi进度消耗1280M内存(20M*64=1280M),加上系统自个儿消耗的内存,总共消耗不到2GB内存。借使服务器内存较小,完全可以只开启2多少个php-cgi进度,那样php-cgi消耗的总内存数才500M。

设置收尾

  http://www.fastcgi.com/drupal/node/2

#yum install php

 

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

FastCGI的不足

echo “同学们 ,有人炒盐了,十块钱一袋\n”;

http://blog.yation.com/network/fastcgi/

Linux 下PHP环境搭建

  ④ 、法斯特CGI子进度达成处理后将正式输出和错误音讯从同再三再四接重回Web
Server。当FastCGI子进度关闭连接时,请求便告处理完毕。法斯特CGI子进度接着等待并处理来自法斯特CGI进度管理器(运维在Web
Server中)的下一个老是。 在CGI方式中,php-cgi在此便脱离了。

在浏览器中分别输入
http://localhost、http://localhost/test.php,查看输出效果。

 

 21 #                               “mod_auth”,

 

test.html

  -P 内定爆发的长河的PID文件路径

  上面我们就足以接纳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

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

  PHP-FPM的应用特别便利,配置都以在PHP-FPM.ini的文本内,而运营、重启都可以从php/sbin/PHP-FPM中进行。更便民的是修改php.ini后得以一贯动用PHP-FPM
reload举办加载,无需杀掉进度就能够形成php.ini的修改加载结果突显使用PHP-FPM可以使php有不小的质量提高。PHP-FPM控制的进程cpu回收的进程比较慢,内存分配的很均匀。

  三 、法斯特CGI技术如今协助语言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等。相关模块在Apache,
ISS, Lighttpd等风靡的服务器上也是可用的。

 

因为是多进程,所以比CGI二十四线程消耗更加多的服务器内存,PHP-CGI解释器每经过消耗7至25兆内存,将这几个数字乘以50或100就是很大的内存数。

 

法斯特CGI像是3个常驻(long-live)型的CGI,它可以一贯施行着,只要激活后,不会每回都要费用时间去fork三次(那是CGI最为人诟病的fork-and-execute
情势)。它还援助分布式的运算, 即 法斯特CGI
程序可以在网站服务器以外的主机上举行并且接受来自其他网站服务器来的伸手。

—————————-网站根目录———————————

 18                                 “mod_access”,

 

  ④ 、如CGI,法斯特CGI的不依靠于任何Web服务器的中间架构,因而尽管服务器技术的变化,
法斯特CGI依旧平静不变。

设置 cgi.fix_pathinfo = 1

 26 #                               “mod_simple_vhost”,

                            )

 

index.php 内容

 20 #                               “mod_trigger_b4_dl”,

…..

 39 ## server.virtual-* options

 CGI全称是“公共网关接口”(Common Gateway
Interface),HTTP服务器与你的或其余机器上的次第举行“交谈”的一种工具,其先后须运营在网络服务器上。

……………..

5 修改php.ini

  三 、当客户端请求到达Web
Server时,法斯特CGI进度管理器采取并屡次三番到2个CGI解释器。Web
server将CGI环境变量和专业输入发送到FastCGI子进程php-cgi。

…..

 23 #                               “mod_setenv”,

http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/)

设置环境:PHP+lghttpd + postgresql

—————————–暗许首页格式————————-

配置lighttpd

#/etc/init.d/linghttpd start

  贰 、法斯特CGI进度管理器本人先河化,运行几个CGI解释器进度(可知七个php-cgi)并等待来自Web
Server的连日。

 46 index-file.names            = ( “index.php”, “index.html”,

116 accesslog.filename          = “/var/log/lighttpd/access.log”

                                “.sh” => “/bin/bash”,

  -p 绑定到端口port

 
 lighttpd是三个大好的代表方案。其是贰个拾贰分轻便的web服务器,纵然它的效益没有apache强大,可是可以满足一大半的服务要求。它的内存占用量一般是2M左右,占用的共享内存是20M左右,而且与apache完毕机制不相同的是,lighttpd接纳单进度多路复用的形式响应请求,在系统中一般唯有贰个lighttpd进度响应服务请求。(也可配备为多进度)所以从内存占用量的角度看,lighttpd就有很大的优势。其它,lighttpd也足以经过布署fast-cgi援救php应用。

  http://php-fpm.org/about/

–start  启动php的fastcgi进程

  一 、如CGI,法斯特CGI也负有语言无关性.

6 配备完成,重起lighttpd

# /etc/init.d/lighttpd restart

CGI可以用任何一种语言编写,只要那种语言具有标准输入、输出和环境变量。如php,perl,tcl等

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

  PHP5.3.3已经集成php-fpm了,不再是第2方的包了。PHP-FPM提供了更好的PHP进程管理措施,可以有效控制内存和进度、可以平滑重载PHP配置,比spawn-fcgi具有更多有点,所以被PHP官方收录了。在./configure的时候带
–enable-fpm参数即可开启PHP-FPM。

 32 #                               “mod_usertrack”,

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

 45 # files to check for if …/ is requested

  PHP-FPM、Spawn-FCGI都以医护php-cgi的长河管理器。

 27 #                               “mod_evhost”,

lighttpd、mysql的平息运转命令(root身份实施)

法斯特CGI是言语无关的、可伸缩架构的CGI开放扩大,其首要作为是将CGI解释器进度保持在内存中并由此赢得较高的习性。威名昭著,CGI解释器的屡屡加载是CGI质量低下的要害原因,如若CGI解释器保持在内存中并收受法斯特CGI进程管理器调度,则可以提供不错的性质、伸缩性、Fail-
Over天性等等。

 

 15                                 “mod_rewrite”,

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

        

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

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

  什么是FastCGI

  -u和-g 法斯特CGI使用什么地位(-u 用户 -g
用户组)运维,Ubuntu下得以应用www-data,别的的基于气象布署,如nobody、apache等

1:yum install lighttpd

14 server.modules              = (

 25 #                               “mod_proxy”,

简短安插

  -f
指定调用FastCGI的长河的实践顺序地点,根据系统上所装的PHP的境况具体设置

                               “.cgi” => “/usr/bin/perl”

 29                                 “mod_cgi”,

  ① 、php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不能够平滑重启

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

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

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

  参数含义如下:

什么是PHP-CGI

 22 #                               “mod_status”,

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

 47                                 “index.htm”, “default.htm” )

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

                                “.pl”  => “/usr/bin/perl”,

cgi.assign                 = (

  -s 绑定到unix socket的路径path

  PHP-FPM与Spawn-FCGI作用相比

 

修改一下内容

2:yum install fcgi lighttpd-fastcgi

 

  PHP-FPM其实是PHP源代码的三个补丁,意在将法斯特CGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才方可接纳。

PHP+lghttpd + postgresql 环境搭建

 

 

 17 #                               “mod_alias”,

 24                                 “mod_fastcgi”,

—————————–FastCgi模块—————————

#chkconfig –level 345 lighttpd on