在系统中貌似唯有3个lighttpd进度响应服务请求,先由用户在客户端输入一些音讯

CGI(二个说道)
是web服务器和表面应用程序(cgi程序)之间的接口标准,是cgi程序和web服务器之间传递新闻的规程。

PHP+lghttpd + postgresql 环境搭建

cgi

 

在情理上是一段程序,运转在服务器上,提供同客户端HTML页面的接口。那样说大致还不好通晓。那么大家看一个实在例子:以往的个人主页上半数以上都有一个留言本。留言本的劳作是这么的:先由用户在客户端输入一些消息,如名字之类的事物。接着用户按一下“留言”(到近日甘休工作都在客户端),浏览器把这几个新闻传递到服务器的CGI目录下一定的cgi程序中,于是cgi程序在服务器上依据约定的不二法门开展处理。在本例中就是把用户提交的音讯存入指定的文件中。然后cgi程序给客户端发送三个新闻,表示请求的任务已经收尾。此时用户在浏览器里将看到“留言为止”的字样。整个进度为止。

Linux 下PHP环境搭建

拍卖步骤:

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

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

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

⑷web服务器把结果送重临用户。

安装环境:PHP+lghttpd + postgresql

1:yum install lighttpd

cgi程序是由用户的输入触发的,运行在web服务器上的顺序。CGI是在HTTP服务器下运作外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的应用项目程序,就象是他们在其实使用那个中远距离总括机一样。

提高自带apache2作为专擅认同的web服务器。在本来的系统中就是使用apache作为web页面的服务器,apache占用的内存很多,二个apache进程占用的内存大概是20M,最大的大概占到35M以上,占用的共享内存都在100多M以上。而且apache是1个多进度响应服务,那样apache的进程占用内存更多。因而经短期运作,会见世由于内存不够而不能访问界面的图景。

cgi

 
 lighttpd是1个得天独厚的代表方案。其是三个相当轻便的web服务器,纵然它的功能没有apache强大,不过可以满意超过半数的劳务需要。它的内存占用量一般是2M左右,占用的共享内存是20M左右,而且与apache落成机制差别的是,lighttpd接纳单进度多路复用的措施响应请求,在系统中一般唯有三个lighttpd进程响应服务请求。(也可配备为多进度)所以从内存占用量的角度看,lighttpd就有很大的优势。别的,lighttpd也能够通过计划fast-cgi资助php应用。

办事原理:

1.浏览器通过HTML表单超链接呼吁指向3个CGI应用程序的URubiconL。

2.服务器收发到请求。

3.服务器执行指定所CGI应用程序。

4.CGI应用程序执行所需求的操作,常常是依照浏览者输入的故事情节。

5.CGI应用程序把结果格式化为互联网服务器和浏览器可以明白的文档(寻常是HTML网页)。

6.互联网服务器把结果回到到浏览器中。

最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格数据,生成动态页面情节,或许收发cookies.可能最强劲,最有含义的特色是PHP协助大范围的多少库.书写三个辅助数据库的Web
页面是存疑的简便。

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


 

FastCGI(壹个商谈)

CGI 的质量缺点:web server 得到1个request
后,会fork二个子过程,然后子进程执行cgi程序。那意味
如果N个请求并发访问同一cgi
程序,那么该程序会被装载入内存N次。cgi进程的反复加载造成了cgi的属性低下。

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

工作规律:

壹,Web
Server运维时载入法斯特CGI经过管理器(IIS
ISAPI或Apache Module)

2、法斯特CGI进度管理器本身发轫化,运行五个CGI解释器经过(可知三个php-cgi)并伺机来自Web
Server的连年。

叁,当客户端请求到达Web
Server时,法斯特CGI进度管理器采用并连接到三个CGI解释器。Web
server将CGI环境变量和业内输入发送到法斯特CGI子进度php-cgi。

肆,法斯特CGI子进度达成处理后将正式输出和错误音讯从同连续接重返Web
Server。当法斯特CGI子进度关闭连接时,请求便告处理完了。法斯特CGI子进度接着等待并处理来自法斯特CGI进度管理器(运维在Web
Server中)的下二个一而再。
在CGI情势中,php-cgi在此便退出了。

在上述意况中,你可以设想CGI寻常有多慢。每多少个Web请求PHP都不大概不另行分析php.ini、重新载入全体恢弘不分畛域开首化全体数据结构。使用法斯特CGI,所有那么些都只在经过运转时暴发五回。三个卓绝的裨益是,持续数据库连接(Persistent
database connection)可以干活。


2:yum install fcgi lighttpd-fastcgi

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

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

PHP-CGI的不足:

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

直接杀死php-cgi进度,php就无法运转了。(PHP-FPM和Spawn-FCGI就从未有过这些难点,守护进度会平滑从新兴成新的子进度。)


 

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方式是各样请求fork3个子进程,然后再销毁.高频度的造访下,频仍的fork爆发额外的连串开发,限制了拍卖能力,所以在apache下跑php一般都以内嵌模块的法门(mod_php)

话说CGI还有一种变种FASTCGI, 为了缓解CGI的那种缺陷,
大约是上世纪90时代前期现身了FASTCGI, 以常驻进度的方法提供CGI服务,

只是大约与此同时,apache有了mod_perl,
mod_php等模块,品质一般比较有优势,大家都喜爱用那种措施,
所以fastcgi没立马火起来。

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

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

 CGI全称是“公共网关接口”(Common Gateway
Interface),HTTP服务器与你的或其他机器上的次第开展“交谈”的一种工具,其程序须运转在互连网服务器上。

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

  什么是FastCGI

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

法斯特CGI是语言无关的、可伸缩架构的CGI开放增加,其主要表现是将CGI解释器进程保持在内存中并因而拿到较高的习性。举世闻名,CGI解释器的累累加载是CGI品质低下的显要原因,如若CGI解释器保持在内存中并接受FastCGI进度管理器调度,则足以提供非凡的性质、伸缩性、Fail-
Over性情等等。

  FastCGI与CGI特点

  1、如CGI,法斯特CGI也兼具语言毫无干系性.

  二,如CGI,
FastCGI在进度中的应用程序,独立于宗旨web服务器运转,提供了3个比API更安全的条件。(APIs把应用程序的代码与核心的web服务器链接在共同,那表示在1个谬误的API的应用程序或者会破坏其余应用程序或骨干服务器;
恶意的API的应用程序代码甚至足以窃取另一个应用程序或基本服务器的密钥。)

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

  四,如CGI,法斯特CGI的不借助于于其它Web服务器的其中架构,由此尽管服务器技术的变化,
FastCGI依然祥和不变。

法斯特CGI的做事原理

  1、Web Server运维时载入法斯特CGI进程管理器(IIS ISAPI或Apache Module)

  二,法斯特CGI进度管理器本人初阶化,运营四个CGI解释器进程(可知多少个php-cgi)并等待来自Web
Server的接连。

  三,当客户端请求到达Web
Server时,法斯特CGI进度管理器选拔并连接到二个CGI解释器。Web
server将CGI环境变量和正式输入发送到法斯特CGI子进程php-cgi。

  四,法斯特CGI子进度落成处理后将正式输出和错误消息从同一连接再次回到Web
Server。当FastCGI子进度关闭连接时,请求便告处理到位。法斯特CGI子进度接着等待并拍卖来自法斯特CGI进度管理器(运维在Web
Server中)的下七个老是。 在CGI格局中,php-cgi在此便脱离了。

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

FastCGI的不足

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

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

  上面的数据摘自Nginx 0.8.x + PHP
5.2.13(法斯特CGI)搭建胜过Apache十倍的Web服务器(第6版)

        

什么是PHP-CGI

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

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

  PHP-CGI的不足

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

  二,直接杀死php-cgi进度,php就无法运作了。(PHP-FPM和Spawn-FCGI就不曾那么些标题,守护进程会平滑从新兴成新的子进程。)

  什么是PHP-FPM

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

  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举行FastCGI情势下的管理工作,然而有很多欠缺。而PHP-FPM的出现些微缓解了有的标题,但PHP-FPM有个缺陷就是要重复编译,这对于一些一度运维的条件或许有不小的危机(refer),在php
5.3.3中得以一直利用PHP-FPM了。

  Spawn-FCGI近期已经独成为二个品类,尤其稳定一些,也给许多Web
站点的布局带来方便。已经有不可枚举站点将它与nginx搭配来缓解动态网页。

  最新的lighttpd也平昔不包含这一块了(http://www.lighttpd.net/search?q=Spawn-FCGI),
但可以在原先版本中找到它。在lighttpd-1.4.15版本中就富含了(http://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz)

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

  注:最新的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(仅用于PHP)

  -P 指定爆发的经过的PID文件路径

  -u和-g FastCGI使用什么地点(-u 用户 -g
用户组)运维,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作用比较

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

  PHP-FPM、Spawn-FCGI都以看护php-cgi的经过管理器。

  参考文档:

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

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

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

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

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

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

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

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

 

#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”,

365体育网投, 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服务器运营了
###添加的

……………..

 

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

相关文章