IIS/PHP/FCgi 设置错误 - 无页面无错误

IIS/PHP/FCgi 设置错误 - 无页面无错误

这不是我安装的第一个安装程序,但我不明白发生了什么......

系统:
- Windows Server 2003
- 带有 FastCGI 的 IIS
- PHP 5.3.1

我已经设置了:
- fcgi.ini 像往常一样,只有一个 [PHP] 部分指向我的 C:\PHP\php-cgi.exe
- IIS / FCGI 映射到 .php 文件
- PHP.ini 几乎是标准的。刚刚启用了完整的错误日志记录和 MySQL 扩展。

最奇怪的结果是:
- 当我在浏览器中调用 test.php 时,它只是永远“连接...”。没有显示,没有错误。

即使我的 test.php 不包含 PHP!
但如果我将其重命名为 test.html,一切就都正常了!

我有点迷路了......

答案1

我最近实施了一个类似的设置:

根据我的部署说明,安装步骤如下:

  • 下载 PHP 5.3.1 zip (http://windows.php.net/download/,请注意“我该选择哪个版本?”部分)
  • 安装到 c:\php
  • 测试php-v 命令在命令行上运行(在 c:\php 中)
  • 将 .php 与 FastCGI 关联:IIS 管理器 -> 计算机 -> 网站 -> 站点 -> 右键单击​​,选择属性 -> 选择“主目录”选项卡,单击“配置”,“映射”选项卡。.php 的配置如下所示:

替代文本

  • 配置 FastCGI 的配置文件 (C:\WINDOWS\system32\inetsrv\fcgiext.ini) 至少包含以下内容:
    [类型]
    php=PHP

    [PHP]
    ExePath=c:\php\php-cgi.exe
  • 将以下内容附加/更改为 c:\php\php.ini。如果没有此配置,我的配置会在显示空白页和根本不加载之间来回切换(我猜这是你的问题):
    fastcgi.模拟 = 1
    fastcgi.日志 = 0
    cgi.fix_pathinfo=1
    强制重定向 = 0
  • 显示错误
    在 c:\php\php.ini 中取消注释 extension=php_mysql.dll。
  • 重新启动网站的 IIS(单击停止/播放按钮)

在此配置中,您实际上有两个组件,即 IIS-FastCGI-PHP 之间的管道和 PHP 本身。我建议隔离其中哪个不起作用:

  • 临时编辑 fcgiext.ini 并将 PHP ExePath 指向其他内容,例如 c:\php\nothere.exe。如果服务器开始对 PHP 请求返回“无法找到 FastCGI 可执行文件”,则说明 FastCGI 工作正常,而 PHP 存在问题。
  • 使用默认配置运行 PHP,进行上述 fastcgi/cgi 更改并启用 display_errors。您需要重新启动 IIS(并可能终止所有 php-cgi 进程)以使要重新启动的站点能够识别更改。
  • 使用简单的 phpinfo(); 脚本在命令行上运行 PHP,检查基本操作,并注意加载的 php.ini 在哪里。这将检查恶意配置文件(例如 c:\、c:\windows 等)是否正在使用。

这些步骤确认(至少)PHP 可执行文件正在被调用,并具有最基本的配置。

希望这可以帮助,

洛基

答案2

现在可以工作了:我只是忘了正确设置 PHP 设置“extension_dir”为“ext”,而 PHP Zip 版本中默认情况下不是这样。

相关内容