Apache + FastCGI 上的 PHP 具有多个文件扩展名

Apache + FastCGI 上的 PHP 具有多个文件扩展名

php 文档,我已将 PHP 设置为与 Apache2+FastCGI 一起工作,配置如下(在 httpd.conf 中):

LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php" 
AddHandler fcgid-script .php .html
FcgidWrapper "c:/php/php-cgi.exe" .php
FcgidWrapper "c:/php/php-cgi.exe" .html

我也尝试了以下方法来替代最后三行:

<Files ~ "\.html>" 
AddHandler fcgid-script .html
SetHandler fcgid-script
FcgidWrapper "c:/php/php-cgi.exe" .html
</Files> 

但是,只有以 结尾的文件.php才会作为 PHP 脚本运行,而扩展名为 的文件.html则不会。配置文件中似乎没有其他地方指定 .php 扩展名,所以我不知道为什么 httpd 会以不同的方式对待它们。

直接运行php-cgi.exe index.html会产生预期的输出,因此问题似乎在于 httpd 没有将控制权传递给 cgi 可执行文件。

正确的做法是什么?

具体版本信息:

  • Apache HTTPD 2.2.22
  • mod_fcgid-2.3.6-win32
  • php-5.2.17-nts-Win32-VC6-x86
  • Windows Server 2008 RC2

答案1

我做了一个小测试:

AddHandler fcgid-script php fcg fcgi fpl html
FcgidWrapper "/usr/bin/php-cgi -d date.timezone=America/New_York" .html
FcgidWrapper "/usr/bin/php-cgi -d date.timezone=America/New_York" .php

并且成功使用 php 传递 .html 文件。我会查看您的 Apache 配置文件,看看您是否事先或之后声明了 .html 文件的处理程序。

相关内容