什么是FastCGI?

什么是FastCGI?

什么是FastCGI?

PHP的FastCGI使你的所有php应用软件通过mod_fastci运行,而不是mod_phpsusexec。FastCGI应用速度很快是因为他们持久稳定。不必对每一个请求都启动和初始化。这使得应用程序的开发成为可能,否则在CGI范例是不切实际的(例如一个大型的脚本,或者一个需要连接单个或多个数据库的应用)。

1.FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute模式)。

2.FastCGI可在任何平台上使用,Netscape Enterprise及IIS都有FastCGI的模块可供使用,阿帕契(Apache,以及利用Apache衍生出做的服务器)上也有mod_fastcgi可用。

3.FastCGI支持C/C++、Java、PHP、Python、Ruby、Perl,Tcl等程序语言。

4.FastCGI的应用程序亦兼容于CGI。即FastCGI的应用程序也可以当成CGI来执行。

5.现有的CGI程序要改写成FastCGI非常简单,最少可能只需要多加入三行程序代码。

6.FastCGI的侦错方式与CGI大同小异,只要带入程序所需的环境变量及参数,即可在命令列模式执行或侦错。

7.FastCGI应用程序的写作方式与CGI类似,除了几项原则要特别注意外,FastCGI的写作方式跟CGI几乎一样,与学习Web Server API比较起来,FastCGI简单多了。

8.FastCGI支授分布式运算(distributed computing),即FastCGI程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

好处

1.PHP脚本运行速度更快(3到30倍)。PHP解释程序被载入内存而不用每次需要时从存储器读取,极大的提升了依靠脚本运行的站点的性能。

2.需要使用更少的系统资源。由于服务器不用每次需要时都载入PHP解释程序,你可以将站点的传输速度提升很高而不必增加cpu负担。因为dll文件不再每次都载入了,那么数据库的持久连接也将可以起到它设计初的效果。

3.不需要对现有的代码作任何改变。

潜在问题

1.对所有的子目录(/home/USERNAME/public_html/php.ini)你只有一个可用的php.ini文件。这是优化网站代码所必需的。如果你需要多个php.ini文件以适应不同的脚本需要,你可以在任何子目录禁用PHP的快速CGI,而其余的地方则继续有效。

2.你对PHP环境做的任何升级(如php.ini文件的改变)都有几分钟的延迟。这是因为为了更快的速度你的php.ini文件已经被载入内存,而不是每次需要时再从存储器重新读取。