如何配置 IIS 以允许 PHP 脚本访问网络资源?

Der*_*sed 5 networking iis php permissions unc

我目前正在开发一个 PHP 前端,它将一系列运行在不同服务器上的应用程序结合在一起;许多这些应用程序生成我需要访问的文件,但这些文件(出于各种原因)驻留在它们的父服务器上。

如果我从命令行发出一些脚本,例如:

<?php
var_dump(glob("\\\\machine-name\\some\\share\\*"));
Run Code Online (Sandbox Code Playgroud)

我将获得该目录的完整内容,证明 PHP 以编程方式读取 UNC 共享的内容没有问题。但是,如果我尝试从 Web 服务器执行相同的脚本,我会得到一个空数组——更具体地说,如果我使用更明确的函数来“打开”一个像文件一样的目录,我会收到访问错误。

我相信这是一个权限问题,但我不是服务器/网络管理员类型,所以我不确定我需要做什么来纠正这个问题并使我的脚本运行,而且我签出的链接没有得到了大量的帮助,也许是由于我的背景,或者就 IIS 而言缺乏背景,再加上我们实际上并没有为此使用 .NET。

相关统计:Windows Server 2008 Standard SP2 IIS 7.0 PHP 5.2.9

我将连接到两种类型的服务器:其他几台几乎相同的 Server 2008 机器和一台运行嵌入式 XP 的机器。

没有特别有用的链接,但也许我只是误读了:

小智 1

正如您所猜测的,这是一个权限问题... IIS 工作进程作为计算机上的本地帐户运行的用户(很可能是 IUSER_ <MACHINENAME>),并且该用户未经身份验证(该帐户甚至不存在!)在您尝试通过 UNC 浏览的其他计算机上

作为测试,您可以进入 IIS 管理器并更改该网站正在运行的 IIS 服务...我使用的是 Server 2003/IIS 6 中的术语,因为我手边没有 Server 2008 框现在。如果您浏览 IIS 7 管理器,您应该能够找到可以设置工作进程运行的用户的位置。