Windows Server 2008上的PHP exec

我已经在Windows Server 2008的IIS中安装了PHP作为模块,我很难从PHP脚本中执行命令行程序。

我可以使用php-cgi.exe和php-cli.exe执行PHP代码,这使我相信这可能是一个权限问题。

不过,我可以执行一些命令,如shutdown.exe和dir。

我已经在ASP.NET文件中尝试过相同的过程,并有完全相同的问题。

基本上我想这样做:

EXEC(“path到执行文件”);

而且实际上有它的工作。

尝试

exec('path-to-exe-file 2>&1', $output); var_dump($output); 

2>&1部分应该将错误信息重定向到stdout(在win32上),因此应该显示在$输出中。

我花了好几个小时才发现有什么问题

使用IIS管理器,应用程序池,选择与您的应用程序关联的池,并确保:

ProcessModel.Identity = LocalSystem

ProcessModel.Load用户配置文件= true