1

我正在使用 php5.3 exec 函数从命令行运行一个 cookie-cutter r-script。这个想法是用户选择数据,php运行脚本,用户能够下载高分辨率图形。我已经用 apache 在我的本地测试平台上运行了它,一切正常,但是,生产服务器是带有 IIS7 的 Windows Server 2003(这是我无法控制的)。似乎在 IIS7 中,默认情况下,php 无法访问 cmd.exe。我们尝试使用“calcs”命令更改对 cmd.exe 的权限,但没有成功。

如何通过使用 exec 函数授予 php 访问命令行的权限?

PS我知道,我知道,我知道。没有使用 exec 函数执行用户输入。我们只想利用 R 的高分辨率图形和数据处理能力。

相关细节:

  • 操作系统是 windows server 2003 64 位
  • IIS7
  • 服务器是一个 Amazon EC2 实例
  • (我不认为这是亚马逊的问题,因为我听说有人用 LAMP 堆栈亚马逊实例做类似的事情)

编辑:问题最终是由于某种原因IUSR没有权限在命令行中使用“start”命令。

REM commands below did not work
start "Path to .exe" "File to process"
start "" "Path to .exe" "File to process"

REM this one did however
"Path to .exe" "File to process"
4

1 回答 1

0

我认为这是一个 IIS 问题(您可以在本地安装一个来测试它),但如果您使用匿名身份验证运行,您需要将匿名用户更改为普通用户(将有权启动 cmd.exe)。还要检查应用程序池用户的身份,因为有时它也使用受限帐户运行。

于 2012-09-17T17:54:32.770 回答