继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 文件的处理程序。