如何使用IIS中运行的PHP访问映射的网络驱动器

如何使用IIS中运行的PHP访问映射的网络驱动器,php,iis,Php,Iis,我用PHP(5.6)开发了这个web系统,并在IIS 8.5 Windows Server 2012 R2中运行。 我想做的是列出目录中的所有文件。我正在读取的目录是另一台服务器(Y:\sharedfolder)的共享文件夹的映射网络驱动器。当我执行网络驱动器的dir命令时,php代码看不到它 我在网站上搜索过这里,看到了很多可能的解决方案,但在我这方面没有任何效果。我不确定我做得是否正确。因此,我将在这里共享我的当前设置 当我在CLI中运行whoami时,我得到了“pc\u name\admi

我用PHP(5.6)开发了这个web系统,并在IIS 8.5 Windows Server 2012 R2中运行。 我想做的是列出目录中的所有文件。我正在读取的目录是另一台服务器(Y:\sharedfolder)的共享文件夹的映射网络驱动器。当我执行网络驱动器的dir命令时,php代码看不到它

我在网站上搜索过这里,看到了很多可能的解决方案,但在我这方面没有任何效果。我不确定我做得是否正确。因此,我将在这里共享我的当前设置

当我在CLI中运行whoami时,我得到了“pc\u name\administrator”。当我在代码中执行它时,我得到“iis apppool\cs2”

映射的网络驱动器(Y:\sharedfolder)共享给以下用户:

  • 每个人
  • 系统
  • 管理员(pc\U名称\管理员)
  • 管理员(pc\U名称\管理员)
  • IIS\U IUSRS(pc\U名称\IIS\U IUSRS)
  • CS2(iis应用池\CS2)
我的IIS设置如下:

[认证]

  • 匿名身份验证(已启用,凭据:应用程序池标识)
  • ASP.NET模拟(已禁用)
  • 表单身份验证(已禁用)
[应用程序池]

  • CS2(.NET CLR v4.0,托管管道模式:集成,标识:ApplicationPoolIdentity,加载用户配置文件:True)
  • DefaultAppPool(.NET CLR v4.0,托管管道模式:集成,标识:ApplicationPoolIdentity,加载用户配置文件:True)
[快速CGI设置]

  • C:\php\php-cgi.exe(协议Tcp)
[网址:CS2]

  • 网站名称:CS2
  • 应用程序池:CS2
  • 物理路径:C:\inetpub\wwwroot\cs2
  • 以“管理员”身份连接

这些都是我的设置,但我仍然无法访问映射的网络驱动器。我的IIS中是否缺少或不正确的设置?

不确定它是否可以与映射驱动器、IIS和PHP一起正常工作。但建议改用UNC路径

当您运行whoami时,您的应用程序以您的登录用户身份执行它。但是,当您在IIS中托管web应用时。应用程序在应用程序池标识下运行,并通过匿名用户访问文件

如果共享文件夹服务器和IIS服务器位于同一域中。然后,您可以尝试将应用程序池标识设置为具有足够权限访问该文件夹的域帐户。然后请转到匿名身份验证,并将其编辑为使用应用程序池idenity


如果您选择共享文件夹服务器和IIS服务器是两个独立的工作站。然后,您可能需要创建具有相同用户名和密码的用户。然后授予用户访问UNC路径的读/写权限。最后,您只需将匿名用户和应用程序池标识设置为此用户。

根本不支持映射驱动器