IIS7.5上安装PHP时出现FastCGI错误

IIS7.5上安装PHP时出现FastCGI错误

我正在尝试在 Win2008r2 服务器上安装 MediaWiki,但无法安装 PHP。以下是我所做的:

  • 获取 PHP 的 Zip 存档并将其解压到 C:\PHP。
  • 创建了两个子目录:c:\PHP\sessiondata 和 c:\PHP\uploadtemp。
  • 授予 IUSR 帐户对子目录的修改权限。
  • 将 php.ini-production 复制为 php.ini
  • 编辑 php.ini 并做以下更改:

fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
open_basedir = "c:\inetpub\wwwroot;c:\PHP\uploadtemp;C:\PHP\sessiondata"
extension = php_mysql.dll
extension_dir = "./ext"
upload_tmp_dir = C:\PHP\uploadtemp
session.save_path = C:\php\sessiondata

  • 安装Web服务器角色,选择CGI和HTTP重定向选项。
  • 在处理程序映射中:

    • 添加了模块映射。输入了以下值:
    • 路径 = *.php、模块 = FastCgiModule、可执行文件 = c:\php\php-cgi.exe、名称 = PHP via FastCGI。
  • 在 wwwroot 目录中创建一个测试页面:phpinfo.php 并设置如下内容:
    < ?php phpinfo(); ?>

  • 浏览至http://localhost/phpinfo.php

但后来我得到:

HTTP Error 500.0 - Internal Server Error
An unknown FastCGI error occured
    Detailed Error Information
Module: FastCgiModule 
Notification: ExecuteRequestHandler 
Handler: PHP via FastCGI 
Error Code: 0x800736b1 

Requested URL: http://localhost:80/phpinfo.php
Physical Path: C:\inetpub\wwwroot\phpinfo.php 
Logon Method: Anonymous 
Logon User: Anonymous 

有人知道我在这里做错了什么吗?谢谢。

答案1

这是由于您的机器上缺少 VC9 运行时造成的。您需要从这里

答案2

您漏掉了几个步骤。错误代码:0x800736b1 表示未找到 DLL。我没有看到您输入环境设置的任何地方?

  • 启动注册表编辑器:开始 => 运行 => regedit
  • 在 HKEY_LOCAL_MACHINE\SOFTWARE\ 下创建一个名为 PHP 的新键
  • 右键单击新创建的键并选择 New => String Value
  • 将新值命名为 IniFilePath,并将值数据设置为 C:\php
  • 单击开始 => 设置 => 控制面板,然后双击系统图标(使用类视图)。
  • 单击左侧栏中的高级系统设置链接。
  • 在系统属性窗口中,单击高级选项卡,然后单击底部的环境 - 变量按钮。
  • 从系统变量部分中选择路径变量并单击编辑。将 c:\php 添加到您的系统路径(确保包含分号分隔符)。

在此处输入图片描述

  • 添加此内容后,重新启动,启动命令提示符并输入“C:\PHP>php –info”。这将检查 PHP 是否被正确拾取。

  • 测试你的 php 脚本

答案3

根据您为 Windows 下载的 PHP 版本(非线程安全的 64 位或 32 位、V9 或 V11 编译),您还需要下载并安装适当的 Visual C++ 可再发行应用程序(V9 或 V11)。

如果您之前已在 IIS 中为 FastCGI 安装了模块映射,则需要卸载它和 CGI​​ 角色服务(并重新启动)。安装 VC9 或 VC11 后,重新安装 CGI 角色服务(这将包括 FastCGI 服务),并重新安装 CGI 模块映射以指向 php-cgi.exe 的路径。

接下来,将完整可执行文件的路径附加到后面:例如;C:\php\php-cgi.exe。请务必添加括号以区分新条目。

最后,请务必按上述说明设置 php.ini 值,并设置 date.timezone 值。您将发现 data.timezone 可接受的值这里

相关内容