![使用PHP5.2+IIS7.5访问网络共享](https://linux22.com/image/579668/%E4%BD%BF%E7%94%A8PHP5.2%2BIIS7.5%E8%AE%BF%E9%97%AE%E7%BD%91%E7%BB%9C%E5%85%B1%E4%BA%AB.png)
我正在使用带有 IIS7.5 的 php 5.2。
我在 NAS 上有一个受用户名和密码保护的网络共享。我无法禁用或更改 NAS 上的身份验证信息。我需要能够通过 php 访问该网络共享。
我已完成以下操作:
- 在 Windows 中创建新用户,其用户名和密码与 NAS 上的匹配。
- 创建使用相同身份验证信息的 IIS 应用程序池。
在 php 应用程序目录内创建了一个 web.config 文件,并启用了模拟功能,使用相同的身份验证信息。
身份模仿=“true” 密码=“ThePass” 用户名=“TheUser” />
在 IIS 中的应用程序身份验证中启用了 ASP.NET 模拟。
使用 php 中的这行简单代码,似乎以上这些都不起作用:
$dir = opendir("\\\\someservername\\somesharename");
警告:opendir(\someservername\somesharename) [function.opendir]:无法打开目录:C:\websites\site\forum\testing.php 第 7 行中没有错误
因此,我决定用 ASP.NET 测试配置。
string[] diretories = System.IO.Directory.GetDirectories("\\\\someservername\\somesharename");
asp.net 测试运行完美。
继续深入研究,我运行了 phpinfo() 并检查了其中的用户名信息。在 phpinfo 的“环境”部分中,我找到了“USERNAME”项。它的值为“TheUser”,正如我所料。
一切都表明系统配置正确,直到我尝试:
echo get_current_user();
返回的是“IUSR”。这肯定不是我所期望的。
这个问题可以很容易地交叉发布到 stackoverflow,但我认为这是一个配置问题。
那么,我究竟如何让 php + IIS7.5 从国外网络共享读取数据呢?