如何以 Windows 用户身份运行 PHP + IIS8,或者我应该这样做吗?

如何以 Windows 用户身份运行 PHP + IIS8,或者我应该这样做吗?

我正在 IIS8 上创建一个 PHP 网站,该网站需要连接到与 IIS8 位于同一 Windows 域中的 SQL Server。我获得了一个 Windows 域用户帐户,并被要求使用其凭据进行连接。

我正在使用sqlserv_connect()PHP,但出现错误Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

有没有办法以 Windows 域用户身份运行 PHP + IIS8?或者必须我可以将 SQL Server 配置为使用 SQL 身份验证模式,以便我可以提供用户名和密码吗?

答案1

虽然 Joel 的回答让我找到了答案,但我并没有解决上述问题。我发现将应用程序池更改为特定用户并没有帮助。还有一些相关领域需要检查。

php.ini 中的 FastCGI.Impersonation 值必须设置为 1。这可以在任务管理器中进行验证,并查看 PHP 进程当前在哪个帐户下运行。

然后,在 IIS 管理器的网站对象下有一个 IIS 身份验证设置。默认情况下,启用匿名登录,当您查看设置时,它使用默认用户帐户(在我的情况下是 IISUSER)。它允许将匿名用户更改为应用程序池的选项,在这种情况下,如果将应用程序池设置为正确的用户,它将起作用。

或者,完全忘记应用程序池并直接将用户帐户设置为默认匿名登录帐户。

我在这里留下我的答案,看看其他人是否可以对这种更改默认匿名用户的方法的潜在缺陷提出反馈。

答案2

您可以使用 IIS 管理器将 PHP 站点区域Identity中的设置为您想要的任何用户...但就我个人而言,我更喜欢使用 sql 身份验证。Advanced SettingsApplication Pool

答案3

我之前曾使用 IIS 7.5 和没有登录权限的域级服务帐户完成过此操作。如果您知道如何从策略上控制服务帐户,那么这就是可行的方法。

相关内容