CGI全称(Common Gateway
interface)公共网关借口,HTTP服务器与你的或其他机器上的程序进行交谈的工具,器程序须运行在网络计算机中
CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等
FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute
模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。
FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-
Over特性等等。
FastCGI的工作原理
1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)
2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。
Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web
Server。当FastCGI子进程关闭连接时,请求便告处理完成。
FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。
在CGI模式中,php-cgi在此便退出了。
在上述情况中,你可以想象CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。
使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database
connection)可以工作。
前一篇文章中我们构建了LAMP是工作在CGI模式,下面来为apache2.2.22版本提供FastCGI模块,是LAMP工作更完美
我们去官方下载最新的fastcgi模块软件名为mod_fastcgi-2.4.6.tar.gz
下载地址http://www.fastcgi.com/dist/
步骤:
#tar xf mod_fastcgi-2.4.6.tar.gz
#cd mod_fastcgi-2.4.6
#cp Makefile.AP2 Makefile //如果是2.0版本的apache需要此操作
#make top_dir=/usr/local/apache/ //这是httpd安装的目录
#make install top_dir=/usr/local/apache/
在httpd.conf中添加
LoadModule fastcgi_module modules/mod_fastcgi.so
之后重启httpd服务 就可以完成FastCGI模块升级了
http://leezqang.blog.51cto.com/1525874/812754
分享到:
相关推荐
本篇文章将详细讲解在Apache服务器中配置FastCGI,特别是如何编辑`httpd.conf`文件来实现这一功能。 首先,我们需要了解Apache的`httpd.conf`配置文件。这是Apache的主要配置文件,包含了服务器启动、运行以及与...
Apache服务器的FastCGI配置教程主要介绍了如何在Apache服务器上安装和配置FastCGI模块,以便用于提高Web应用的性能。FastCGI是一种开放的、支持多平台的应用程序接口(API),被用来让Web服务器与后端应用程序进行...
mod_fcgid 是一个用于 Apache 的 FastCGI 接口模块,它使得 Apache 能够通过 FastCGI 协议与 PHP 等脚本语言进行通信。 - **下载 mod_fcgid**: - 访问 http://www.apachelounge.com/download/ 网站下载 fcgid-2.2...
Apache FastCGI是一种让动态内容在Apache web服务器上高效运行的技术。FastCGI是Fast Common Gateway Interface的缩写,它是一种常驻型的CGI,旨在解决CGI接口的性能问题。传统CGI每次处理请求时都会启动新的进程,...
在Apache中使用mod_fcgid配置FastCGI,可以添加以下行到配置文件: ```apacheconf LoadModule fcgid_module modules/mod_fcgid.so AddHandler fcgid-script .fcgi FcgidInitialEnv PATH /usr/local/bin:/usr/bin...
一旦mod_fastcgi模块成功编译并安装,需要将其添加到Apache的配置文件中。在`httpd.conf`或`apache2.conf`中,添加以下行: ```apacheconf LoadModule fastcgi_module modules/mod_fastcgi.so <IfModule mod_...
2. **安装mod_fastcgi模块** - mod_fastcgi是Apache的一个模块,允许Apache服务器与FastCGI应用通信。 - 可通过Apache的官方文档获取安装指导。 3. **配置Apache与FastCGI** - **修改httpd.conf**: - 添加...
### FastCGI手册知识点解析 #### 一、FastCGI技术概述 ...通过以上步骤,可以在Apache服务器上成功安装并配置FastCGI模块,从而实现对FastCGI技术的支持,进而提高Web应用程序的性能和响应速度。
同时,FastCGI也得到了广泛的支持,如Apache、IIS等主流Web服务器均已集成FastCGI模块。 #### Apache服务器上的安装与配置 1. **安装准备**: - 下载Apache HTTP Server最新稳定版源码包。 - 下载Mod_FastCGI模块...
如果你使用的是Apache,可以安装mod_fastcgi模块,并在配置文件(如`/etc/httpd/conf/httpd.conf`)中添加FastCGI的相关设置。对于Nginx,需要在配置文件(如`/etc/nginx/nginx.conf`)的location块中定义FastCGI的...
1. **模块化架构**:Apache以其模块化的结构著称,允许用户根据需求添加或移除功能模块。例如,mod_rewrite模块用于URL重写,mod_security则提供了Web应用防火墙功能。 2. **配置文件**:Apache的配置主要通过httpd...
2. **模块管理**:Apache服务器是模块化的,这意味着你可以根据需要添加或移除功能。文档中列出了所有核心模块和可选模块的功能,以及如何启用和配置它们。 3. **URL映射与重写规则**:Apache提供了强大的URL重写...
Apache 是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个 Apache Web 站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。 到目前为止,Apache 仍然是世界...
3. **加载模块**:Apache支持动态加载各种模块来扩展功能。可以在`httpd.conf`文件中通过`LoadModule`指令加载所需的模块。例如,要启用URL重写功能,可以加载`mod_rewrite`模块。 4. **创建虚拟主机**:通过在`...
- **Apache与FastCGI**:Apache可以通过mod_fcgid和mod_fastcgi模块支持FastCGI。mod_fcgid已在Windows和Linux上测试通过,而mod_fastcgi适用于Linux环境。这两个模块的配置文档分别位于它们的官方文档中。 - **...
- 使用说明可能涵盖如何在Web服务器的配置文件中添加FastCGI模块设置,如IIS的Web.config或Apache的httpd.conf文件中的设置。 - 另外,它可能还会提供错误排查、日志查看和性能优化的建议。 4. **下载吧下载说明....
1. **模块化设计**:Apache 2.2的核心采用模块化设计,允许用户根据需要加载或卸载功能模块。例如,`mod_php`模块用于在Apache服务器内部直接解析和执行PHP代码,提高性能。 2. **线程支持**:Apache 2.2支持多线程...
2. **配置FastCGI**: 安装PHP后,需要在IIS中添加FastCGI处理模块。在IIS管理器中,选择服务器,然后在“处理程序映射”中添加一个新的映射。指定可执行文件路径为PHP的`php-cgi.exe`,并设置相应的脚本名称,比如`....
3. **配置Apache**:修改Apache的配置文件"httpd.conf",添加或修改LoadModule指令来加载"php5apache2.dll"模块,例如`LoadModule php5_module "path/to/php5apache2.dll"`。 4. **配置PHP**:设置PHP的配置文件...