打开批处理文件php

Fla*_*ius 7 php windows batch-file

在每个人开始接受"安全风险""无法完成"之前,请停在那里阅读整篇文章

我有一个从家用笔记本电脑设置的网络服务器,它作为游戏网络服务器我试图创建一个GUI,所以我们更容易维护服务器,我试图使用批处理文件在计算机上执行操作

所以要把它放到透视图中我有索引文件index.php

<form method="post">
  <input type="submit" name="startServer" value="Start Server">
</form>

<?
  if(isset($_POST['startServer'])){
    exec('batch/startServer.bat');
  }
?>
Run Code Online (Sandbox Code Playgroud)

我的startServer.bat将在运行服务器的笔记本电脑上运行,并将执行所有操作以启动我们的游戏服务器,因此有另一个目录"Instance"包含一个可删除的"Server.exe"批处理文件将运行

我正在运行的问题是运行Web服务器并测试它不起作用,如果我直接打开批处理文件它的工作但似乎PHP代码不起作用

为了澄清我正在使用apache,我的浏览器是chrome

对于任何愿意回答这条路线的人来说,这只是一个快速的问题是正确的吗?使用php将允许所有内容在托管服务器的计算机上运行,​​因此最终用户只能看到GUI,服务器将运行批处理文件和Web服务器上的所有内容而不是本地计算机(如果有意义的话)?

编辑:要更清楚正在运行的功能exec运行,但它只是挂起像应用程序正在加载我需要一个实际打开应用程序的解决方案是我的主机,例如,如果我想打开记事本我按下按钮在Web服务器和记事本将在计算机上打开

编辑2:我想要注意,我不需要使用该exec功能,我已经尝试了所有的答案日期7/19/2017:下午3:45没有工作,如果我做的事情echo exec('start text.bat');我会得到一个This is a test to show your batch is working和只是echo .....在批处理文件中我遇到的主要问题是服务器没有物理显示打开的文件,比如显示GUI让我们以记事本为例

我可以打开记事本并获得一些返回值,只要我的批处理文件在完成运行后关闭记事本,但记事本的GUI从未显示,这非常重要

我在一些关于使用apache作为服务的文章中读到了我很确定我的但是我知道xaammp具有足够的priveleges并且我已经选中了"允许apache与桌面交互"的框,但是没有GUI弹出那些我想我想要实现的主要观点是我需要显示GUI而不仅仅是打开文件作为后台服务.

如果它使回答变得更容易,那么我愿意切换编程语言,如果能够做到我想要的更容易的话

Bai*_*ong 2

在关于exec函数的 php 手册中,有一条注释:

注意:如果使用此函数启动程序,为了使其继续在后台运行,必须将程序的输出重定向到文件或另一个输出流。如果不这样做将导致 PHP 挂起,直到程序执行结束。

我认为“像应用程序正在加载一样挂起”是您的应用程序等待bat文件终止/关闭以获得输出结果

让我们尝试另一种方法,我在这里找到了它,其概念是创建一个调度程序来执行您想要的程序并使用命令调用它。

希望这有帮助:

shell_exec('SCHTASKS /F /Create /TN _notepad /TR "notepad.exe" /SC DAILY /RU INTERACTIVE');
shell_exec('SCHTASKS /RUN /TN "_notepad"');
shell_exec('SCHTASKS /DELETE /TN "_notepad" /F');
Run Code Online (Sandbox Code Playgroud)

如果这不起作用

检查您是否已safe_mode = Off在里面申报php.ini


归档时间:

查看次数:

1413 次

最近记录:

7 年,10 月 前