【问题标题】:PHP shell_exec using UNC pathsPHP shell_exec 使用 UNC 路径
【发布时间】:2013-08-23 19:21:29
【问题描述】:

在 PHP 中,当使用 unc 路径时,我无法通过 shell_exec、system 或 exec 执行命令。 这是一个例子:

什么有效:

$command = shell_exec("dir c:\\"); echo $command;

这是行不通的。什么都没有。

$command = shell_exec("dir \\\\server\\dir"); echo $command;

当我在 Windows 命令窗口或 PowerShell 中运行 dir \\server\dir 时,它执行得很好。

【问题讨论】:

  • 运行 Web 服务器(例如 Apache)的用户帐户是否与您登录的用户帐户相同?此外,您可能想尝试net use 为远程目录分配驱动器号。
  • 不要在路径中使用反斜杠,即使您正在为 Windows 编写代码。 PHP 将自动转换为适当的分隔符,只需使用正常的正斜杠即可。请改用dir //server/dir

标签: php system shell-exec


【解决方案1】:

UNC 路径可以使用,但是运行 PHP 服务的用户必须有权访问共享。

我假设您正在使用 IIS 运行 PHP。如果是这种情况,默认用户是IUSR_MachineName。确保此用户有权访问共享。

如果您正在运行 Apache,请检查服务器上的任务管理器以确定哪个用户正在运行 Apache 服务。授予此用户名访问共享的权限。

【讨论】:

  • PHP 在 IIS 上运行,如何将用户从 IUSR_ 更改为另一个帐户?
  • 也许这个关于Server Fault的问题会对你有所帮助:serverfault.com/questions/83947/…
猜你喜欢
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 2013-02-27
  • 1970-01-01
相关资源
最近更新 更多