我正在尝试在 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 可接受的值这里。