gpt4 book ai didi

php - apache 服务 php exec 不工作

转载 作者:可可西里 更新时间:2023-11-01 09:49:24 24 4
gpt4 key购买 nike

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

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

我尝试了不同的方法:exec, system, ..; proc_openWScript.Shell COM 对象,没有任何效果。我尝试使用绝对路径,向用户授予权限,尝试了大量不同的 .exe 做不同的事情,但没有任何效果,没有任何一个被执行。

我为 Apache 服务提供了我的用户名;给它自己的 apache 用户;给它系统用户并勾选“允许与桌面交互”。

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

当 apache 不作为服务运行时,一切正常。

知道哪里出了问题吗?

TIA

最佳答案

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

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

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

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

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

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

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

关于php - apache 服务 php exec 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com