background image

(2)、FastCGI 进程管理器自身初始化,启动多个 CGI

 

解释器进程 (在任务管理器中可

见多个 php-cgi.exe)并等待来自 Web Server 的连接。

(3)、当客户端请求到达 Web Server 时,FastCGI 进程管理器选择并连接到一个 CGI 解

释器。Web server 将 CGI 环境变量和标准输入发送到 FastCGI 子进程 php-cgi。

(4)、FastCGI 子进程完成处理后将标准输出和错误信息从同一连接返回 Web Server。当

FastCGI 子进程关闭连接时,请求便告处理完成。FastCGI 子进程接着等待并处理来自

FastCGI

 

进程管理器(运行在 WebServer 中)的下一个连接。在正常的 CGI 模式中,php-

cgi.exe 在此便退出了。

在 CGI

 

模式中,你可以想象 CGI 通常有多慢。每一个 Web 请求 PHP 都必须重新解析

php.ini、重新载入全部 dll 扩展并重初始化全部数据结构。使用 FastCGI,所有这些都只在

进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)

可以工作。

Fastcgi 的优点:

1)从稳定性上看, fastcgi 是以独立的进程池运行来 cgi,单独一个进程死掉,系统可以很

轻易的丢弃,

 

然后重新分 配新的进程来运行逻辑.

2)从安全性上看,Fastcgi 支持分布式运算. fastcgi 和宿主的 server 完全独立, fastcgi 怎

么 down 也不会把 server 搞垮.

3)从性能上看, fastcgi 把动态逻辑的处理从 server 中分离出来, 大负荷的 IO 处理还是

留给宿主 server, 这样宿主 server 可以一心一意作 IO,对于一个普通的动态网页来说, 逻辑

处理可能只有一小部分, 

 

大量的图片等静态

FastCGI 缺点:说完了好处,也来说说缺点。从我的实际使用来看,用 FastCGI 模式

 

更适合生产环境的服务器。但对于开发用机器来说就不太合适。因为当使用 Zend Studio 调

 

试程序时,由于 FastCGI

 

会认为 PHP

 

进程超时,从而在页面返回 500 错误。这一点让人非

 

常恼火,所以我在开发机器上还是换回了 ISAPI 模式。

安装 fastcgi 模式:

安装 apache 路径是/usr/local/httpd/

安装 php 路径是/usr/local/php/

1)安装 mod_fastcgi