Windows下PHP使用Apache的mod_fcgid模块安装及配置

Windows下使用fastcgi方式安装apache+php,遇到不少小问题。幸好最终解决,特此记录,备忘

  1. 安装Apache Windows Binary:http://httpd.apache.org/download.cgi#apache22
  2. 安装PHP http://windows.php.net/download/
  • 因为是fastcgi方式,所以选择nts的版本下载安装
  • 安装向导中,务必选择“other CGI”;安装时,选择上所有组件
  • 安装mod_fcgid, http://www.apachelounge.com/
    • 下载mod_fcgid-2.3.7-win32.zip
    • 解压后将mod_fcgid.so放置在apache的modules下
  • 根据mod_fcgid的ReadMe.txt,下载相应的VC++ redistribute 进行安装
  • Apache配置
    • httpd.conf增加以下配置
      • <IfModule mod_fcgid.c>

        AddHandler fcgid-script .fcgi .php

        #php.ini的存放目录

        FcgidInitialEnv PHPRC "d:/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 "d:/php/php-cgi.exe" .php

        AddType application/x-httpd-php .php

        </IfModule>

        Alias /phpapp/ "<php_deploy>"

        <Location /phpapp/>

        AddHandler fcgid-script .php

        Options +ExecCGI

        FcgidWrapper "d:/php/php-cgi.exe" .php

        # Customize the next two directives for your requirements.

        Order allow,deny

        Allow from all

        </Location>

    最终,将php文件部署在<php_deploy>下。重启apache,通过localhost/phpapp/*.php即可访问。