【发布时间】:2016-05-06 13:46:24
【问题描述】:
我正在尝试将我的 LAMP 应用程序迁移到 Windows/IIS。 我有一个 Windows 2012 R2 服务器。 我按照https://technet.microsoft.com/en-us/library/hh994592.aspx 的说明进行操作(稍作修改:我使用 add-windowsfeature Web-Server -includeAllSubFeature 来安装 IIS +CGI)。 我安装了 vc++ 2015 redist(x86 和 x64)。 PHP 7.0.2 安装在 d:\php。 配置了 php 的 IIS 模块处理程序:
name : PHP_via_FastCGI
path : *.php
verb : *
modules : FastCgiModule
scriptProcessor : D:\php\php-cgi.exe
resourceType : Either
requireAccess : Script
d:\php 在 PATH 环境变量中。 我的 php.ini 设置是具有这些更改的 php.ini-development 设置:
- extension_dir = "ext"
- cgi.force_redirect = 0
- fastcgi.impersonate = 1
- fastcgi.logging = 0
- extension=php_curl.dll
- log_errors = 开启
- error_log = 系统日志
上述配置适用于 Windows 7 桌面和未加入公司域的 2012 R2 服务器,但在域中的两台 2012 R2 服务器上尝试启动 http://localhost/test.php 时出现 500 Internal Server 错误。
c:\inetpub\wwwroot\test.php 包含:
<?php phpinfo(); ?>
我在 Windows 事件日志中没有看到任何错误信息。
在 cmd 窗口中运行“php c:\inetpub\wwwroot\test.php”会给我预期的 phpinfo。
我已经检查了 d:\php 文件夹和 c:\inetpub\wwwroot 文件夹的 NTFS 权限。它们太多了,无法列出,但 SYSTEM 可以完全控制这两个文件夹,并且 WWWPublishing 服务作为本地系统运行。
关于寻找什么以找出为什么这不起作用的任何想法?
【问题讨论】:
-
您愿意向我们展示引发错误的代码吗?
-
这可能是由于您的代码中的错误,所以请在您的答案中包含它
-
是我当前的代码。我要移植的应用程序是第三方应用程序,而且非常大。它目前在 LAMP 服务器上运行良好。
-
你检查过 IIS 日志吗?
-
我只有默认日志。它显示访问尝试和 500 状态。 eg: #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc- win32-状态耗时 2016-01-28 23:04:56 127.0.0.1 GET /test.php - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+Trident/7.0;+ rv:11.0)+like+Gecko - 500 0 1413 0
标签: php windows-server-2012 iis-8