我觉得我很接近答案,但我并不在那里。我有一个我从PHP调用的命令行程序。我使用shell_exec(),它运行在运行Apache服务器的Windows计算机上。在Windows上以不同的用户身份运行shell_exec
当我运行该脚本时,我在Windows机器上的任务管理器中看到该进程已启动,然后立即停止执行任何操作。该过程仍在运行,但占用大约17 MB的空间,然后PHP脚本就在那里加载。
程序很小(3MB),它可以很好地处理文件大小,它目前只处理一个28 KB的文件。当我从命令提示符中以“管理员”身份调用其中一个时,它们工作正常。当我从shell_exec调用这个时,它不会。我也尝试过exec()和passthru()。
我注意到,当PHP调用程序时,它显示在SYSTEM用户下。我已经检查了程序和正在被程序处理的文件的安全选项卡上的权限,并且SYSTEM,用户和管理员都可以完全控制它们。
我在做什么错?
如果我需要将它作为'管理员'而不是SYSTEM运行,那么我该怎么做?
如果您有任何疑问,我可以详细阐述。
非常感谢你,这已经杀了我!
既然是一个命令行程序,最好的办法是跳过了Apache,通过管理员执行。通常,apache不以root /管理员身份运行 – ajreal 2010-12-29 23:53:39