![IIS 上的 PHP 5.3 在 CGI 模式下出现 404 错误](https://linux22.com/image/486382/IIS%20%E4%B8%8A%E7%9A%84%20PHP%205.3%20%E5%9C%A8%20CGI%20%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%87%BA%E7%8E%B0%20404%20%E9%94%99%E8%AF%AF.png)
我渐渐失去了理智。我的 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.ini
是php.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。
但请先在另一台非生产性服务器上进行测试。编辑:无论如何,它都是一个候选版本,因此您可能想在测试服务器上尝试安装程序...