我已经在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