`

windows+apache2.x+PHP5.3+fcgid fastcgi运行配置

 
阅读更多

 

一、mod_fcgid概念说明以及mod_fastcgi和mod_fcgid的区别

mod_fcgid是一个跟mod_fastcgi二进制兼容的Apache module。

原来的mod_fastcgi因为实现方式的限制,所以可能会创建了很多不必要的进程,而实际上只需要更少的进程就能处理同样的请求。 mod_fastcgi的另外一个问题是每一个CGI的多个进程都共享同一个管道文件,所有到同一个fastcgi的通讯都通过这个同名的管道文件进行, 这样当出现通讯错误的时候,根本不知道正在通讯的是哪一个fastcgi,于是也没有办法将这个有问题的进程杀死。

mod_fcgid尝试使用共享内存来解决这个问题。共享内存里面有当前每个fastcgi进程的信息(包括进程号,进程使用的管道文件名等),当 每次尝试请求fastcgi工作的时候,Apache将会首先在共享内存里面查询,只有在共享内存里面发现确实没有足够的fastcgi进程了,才会创建 新的进程,这样可以保证当前创建的进程数量刚好能够处理客户的请求。另外,由于每一个fastcgi进程使用不同名称的管道文件,所以可以在通讯失败的时 候知道到底哪个fastcgi进程有问题,而能够尽早的将其剔除。

二、程序实现的目标

1、跟mod_fastcgi二进制兼容

只要在Apache中用mod_fcgid替换了mod_fastcgi,就能工作。原来的fastcgi程序不用重新编译,立即可以工作。

2、更严格的控制进程的创建

Apache中每一个request handler都能通过共享内存知道当前系统fastcgi运行的情况,这样可以防止过度的创建fastcgi进程,无谓的消耗系统的资源。

3、简单清晰的进程创建速度控制策略

每一个fastcgi都会维护一个计数器,这个计数器在程序创建和程序结束的时候都会增加,而这个计数器每秒会减1,直到0。当计数器的值高于某个阀值的时候,程序就会停止创建,直到计数器的值回落。这样既可以保证在请求突然增多的时候能够快速反应(特别是Apache刚启动,需要大量创建程序的时 候),也能保证当fastcgi程序有问题,不断重起的时候,重起的速度不会过高而消耗过多的系统资源。

4、自动检测出有问题的进程

因为每个fastcgi使用自己特定的管道文件,所以在通讯错误的时候可以轻易知道哪一个程序出现问题,而尽早的将其剔除。

5、可移植性

遵照Apache2的习惯,所有可移植的代码都放到一起,所有不可移植的代码都在arch目录下分开存放。当前已经测试过的系统包括 Linux , FreeBSD(已经包含入FreeBSD4和FreeBSD5的port中), Solaris, Windows 2000.

6、支持FastCGI方式运行的PHP

可以直接支持以FastCGI方式运行的PHP。因为PHP现在还不能保证所有的扩展代码都是线程安全的,所以并不建议在Apache2的线程模式 下使用mod_php。而以FastCGI方式运行的PHP则是其中一个解决办法。另外,使用mod_fcgi还可以在不修改任何PHP代码的情况下,获得数据库连接池的功能,大大减少PHP进程到数据库的连接。

三、mod_fcgid配置说明

1、首先下载mod_fcgid-2.3.5-win32-x86.zip,将解压的“mod_fcgid.so”文件复制到apache的“modules”目录;http://www.apachelounge.com/download/

2、打开apache的配置文件“httpd.conf”,文件最后加入如下配置:

LoadModule fcgid_module modules/mod_fcgid.so

<IfModule mod_fcgid.c>

    AddHandler fcgid-script .fcgi .php

    #php.ini的存放目录

    FcgidInitialEnv PHPRC "c:/xampp/php"

    # 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出

    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000

    #php-cgi每个进程的最大请求数

    FcgidMaxRequestsPerProcess 1000

    #php-cgi最大的进程数

    FcgidMaxProcesses 5

    #最大执行时间

    FcgidIOTimeout 120

    FcgidIdleTimeout 120

    #php-cgi的路径

    FcgidWrapper "c:/xampp/php/php-cgi.exe" .php

    AddType application/x-httpd-php .php

</IfModule>
3.告诉APACHE执行方式。修改你的配置如下。
<Directory "C:/www">
Options FollowSymLinks ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</Directory>

4、重启apache即可
5.如果安装没错的话,你应该可以看到这个。
fcgid.jpg

分享到:
评论

相关推荐

    windows下apache+fastCGI+PHP的安装与配置小计

    本文主要介绍了在 Windows 系统环境下如何安装与配置 Apache、FastCGI 和 PHP,使之能够协同工作并支持 PHP 应用程序的运行。通过本文的学习,您将能够掌握在 Windows 平台上搭建 LAMP 或 WAMP (Windows + Apache + ...

    apache和C++实现fastcgi时Apache中httpd.conf的配置

    这是Apache的主要配置文件,包含了服务器启动、运行以及与其他模块交互的所有设置。通常,这个文件位于`/etc/httpd/conf`或`/etc/apache2/conf`目录下,具体位置取决于你的操作系统和Apache安装路径。 要启用...

    Apache2.4 Win64位

    Apache2.4 Win64位 配置PHP: #----------------Fastcgi-------------------------------- LoadModule fcgid_module modules/mod_fcgid.so &lt;IfModule mod_fcgid.c&gt; FcgidMaxRequestsPerProcess 1000 ...

    LVS+keeplived+nginx+apache

    在Apache端,则需要配置相关的模块,如mod_fastcgi或mod_fcgid,以便Apache能够正确处理由Nginx传递过来的PHP请求。 此外,还需要注意Nginx和Apache的优化配置,以提高整个集群的性能。这包括但不限于配置合适的...

    mod_fcgid-2.3.6-win32-x86.zip

    综上所述,这个zip文件提供了在Windows上的Apache服务器上启用FastCGI支持所需的所有组件,包括mod_fcgid模块的二进制文件和相关的配置、许可及说明文档。配置Apache以使用mod_fcgid涉及编辑httpd.conf文件,添加或...

    windows下 php环境部署 Apache+php-nts+fcgi

    通过以上步骤,你可以在Windows环境下构建一个稳定的PHP开发环境,结合Apache、FastCGI和PHP-NTS版本,以高效地运行PHP应用。同时,通过ODBC驱动,还能方便地与SQL Server数据库进行交互。记得在每个步骤后检查配置...

    mod_fcgid-2.3.9_windows_x64

    mod_fcgid-2.3.9 x64 适用于Windows平台Apache 2.4 亲测可用

    apache2.4.zip

    - 例如,添加`LoadModule fcgid_module modules/mod_fcgid.so`到配置文件,启用mod_fcgid模块,以支持FastCGI。 4. **安全与优化** - 保持Apache及时更新以修补安全漏洞。 - 使用SSL/TLS证书加密传输,防止数据...

    apache-fastcgi

    Apache FastCGI是一种让动态内容在Apache web服务器上高效运行的技术。FastCGI是Fast Common Gateway Interface的缩写,它是一种常驻型的CGI,旨在解决CGI接口的性能问题。传统CGI每次处理请求时都会启动新的进程,...

    apache+fastcgi入门文档

    Apache FastCGI是一种高效的方法,用于在Apache web服务器上运行动态内容,比如PHP、Perl或Python等脚本语言。FastCGI是通用网关接口(CGI)的一个更快速、更持久的版本,旨在减少对资源的需求并提高性能。本文将...

    mod_fcgid-2.3.9.tar.gz

    5. 运行配置脚本:`./configure --with-apxs=/usr/bin/apxs`,这里"/usr/bin/apxs"应替换为你系统中的apxs实际路径。 6. 编译和安装模块:`make && sudo make install` 7. 修改Apache的配置文件(通常是httpd.conf)...

    mod_fcgid-2.3.9

    `mod_fcgid`在Apache中的作用类似于`mod_php`或`mod_perl`,但它是为运行任意FastCGI应用而设计的,不仅仅是PHP。 **FastCGI概述** FastCGI是Fast Common Gateway Interface的缩写,它是一种语言无关的、可伸缩...

    Apache2.2 + FastCGI + gSOAP搭建 WebService工具

    Apache2.2 + FastCGI + gSOAP搭建 WebService工具,内含: 1、fcgi-2.4.1-SNAP-0910052249.tar.gz 2、mod_fcgid-2.3.9-crlf.zip 3、httpd-2.2.25-win32-x86-openssl-0.9.8y.msi

    PHP程序设计-3期(KC016) 1.2.1Apache的安装配置拓展知识.doc

    本节将详细探讨Apache的安装配置以及与PHP的集成,特别是在Windows环境下的注意事项。 一、PHP在IIS中的运行方式 在Internet Information Services (IIS)中,PHP有ISAPI和FastCGI两种执行方式。ISAPI(Internet ...

    mod-fcgid-2.3.9-windows-x64

    Win环境下安装Apache2+fastcgi+php5(non thread safe)+MySql5+ZendGuardLoader

    Apache 2.4.39 Win64

    3. **启动服务**:运行httpd.exe启动Apache服务器,或者通过系统服务管理器将其设置为开机启动。 4. **测试服务器**:访问localhost或者服务器的IP地址,确认Apache是否正常工作。 对于开发人员和系统管理员来说,...

    fastcgi-2.4.0安装包

    如果你使用的是Apache,可以安装mod_fastcgi模块,并在配置文件(如`/etc/httpd/conf/httpd.conf`)中添加FastCGI的相关设置。对于Nginx,需要在配置文件(如`/etc/nginx/nginx.conf`)的location块中定义FastCGI的...

    不同PHP版本共存方法(WORD)

    【PHP版本共存详解】 在开发和维护过程中,有时我们需要在同一台...在某些情况下,使用像`mod_fcgid`或`mod_proxy_fcgi`这样的Apache模块,配合FastCGI,也可以实现PHP版本共存,但这种方式不在本文的讨论范围内。

Global site tag (gtag.js) - Google Analytics