(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