IIS 上的 PHP 5.3 在 CGI 模式下出现 404 错误

IIS 上的 PHP 5.3 在 CGI 模式下出现 404 错误

我渐渐失去了理智。我的 PHP 5.2 在 IIS 下运行良好(ISAPI),但对于某些扩展,我需要 5.3。所以不用担心,我安装了它,但结果发现 ISAPI 不再提供。

我按照 fastcgi 的安装教程进行操作,结果每个 PHP 页面都出现 500 内部服务器错误。

所以我现在的情况是:我已删除 fastcgi。在我的网站中,我已添加 PHP(head、get、post)并将它们路由到 c:\php\php-cgi.exe。

结果:我尝试的每个 PHP 页面(即使只有文本的页面)都出现 404 未找到错误。我放在同一文件夹中的任何 HTML 文件都没有任何问题。

谁能帮帮我... 这样的事能做对吗?对我来说显然很难。

额外的信息:

  • 按照下面的建议运行安装程序。将其设置为使用 fastcgi。

  • 我的fcgiext.ini文件现在看起来像这样:
    [types]
    php=c:\php\php-cgi.exe
    [c:\php\php-cgi.exe]
    exepath=c:\php\php-cgi.exe

  • 从命令行运行一个 3 行 PHP 文件就phpinfo();可以了

  • 从服务器相同的 PHP 文件只会phpinfo();导致内部服务器 500 错误。
  • 从服务器上,仅包含文本的 PHP 文件可以正常工作
  • 在 IIS 管理控制台中更改文档类型并将 PHP 扩展直接指向时,c:\php\php-cgi.exe每个 PHP 文件都会导致 404
  • php.iniphp.ini.production发行版中的文件。未做任何编辑。

将 IIS PHP 处理程序直接设置为 PHP(而不是通过 fastcgi)c:\php\php-cgi.exe会导致以下结果:

  • 显示仅包含文本的 PHP 页面...工作正常。
  • phpinfo();显示仅显示404 未找到结果的页面

答案1

我找到了问题所在。php.ini 中有一些值需要为 CGI 和 IIS 设置。force_redirect 需要为 0。此外,还需要在 IIS 的 webextensions 部分中添加 PHP 扩展。

这些事情解决了问题。

答案2

您尝试过安装程序.msi 吗?

对于 php 5.3 的 rc4,它位于http://windows.php.net/downloads/qa/php-5.3.0RC4-nts-Win32-VC6-x86.msi

但请先在另一台非生产性服务器上进行测试。编辑:无论如何,它都是一个候选版本,因此您可能想在测试服务器上尝试安装程序...

相关内容