apache服务php exec无法正常工作

waq*_*ner 2 php windows apache service

我查阅了所有其他有关此问题,但他们没有帮助,所以:

我在域内的Windows Server 2003计算机上运行xampp(lite),apache作为服务安装.问题是:PHP函数exec,system,passthru等什么都不做,没有错误消息(apache的日志级别是debug,php error_reporting是E_ALL),没有程序执行,什么都没有,就好像函数调用isn'在那里

我尝试了不同的方法:exec,system,..; proc_openWScript.Shell COM对象,没有任何效果.我尝试使用绝对路径,给用户权限,尝试了大量不同的.exe执行不同的操作,没有任何工作,没有执行任何操作.

我给了Apache服务我的用户名 ; 给了它自己的apache用户 ; 给了系统用户并勾选了" 允许与桌面交互 ".

php safe_mode已关闭,也没有禁用任何功能.

当运行apache而不是服务时,一切都运行良好.

知道什么可能是错的吗?

TIA

bla*_*lms 5

如果您尝试从Vista中的服务启动GUI应用程序,则会遇到很多麻烦.作为一项安全功能,Vista使用"交互式服务检测"调解服务与桌面的交互.

这意味着,如果您将PHP作为Apache服务的模块运行,则无法使用任何方法启动GUI应用程序.这样的事情是行不通的:

$ WshShell =新COM("WScript.Shell"); $ oExec = $ WshShell-> Run("notepad.exe",7,false);

因此,如果您想使用Apache/PHP作为启动GUI应用程序的代理,您需要将Apache作为控制台应用程序运行.

首先,如果Apache已作为服务安装,则需要使用服务管理单元将其启动类型设置为"manual".(%SystemRoot%\ system32\services.msc)在开始菜单搜索框中搜索服务.

然后将一个快捷方式添加到C:\ apache\bin\httpd.exe(或安装Apache的任何位置)到Startup文件夹,并将该快捷方式设置为最小化.你可以使用像TrayIt这样的应用程序!强制Apache进入系统托盘.

然后使用PHP网站上列出的任何方法,您将能够从PHP打开Windows应用程序并查看它的GUI.