如何在php中打开终端窗口并执行命令?
Posted
技术标签:
【中文标题】如何在php中打开终端窗口并执行命令?【英文标题】:How to open terminal window and execute command in php? 【发布时间】:2018-02-03 17:32:02 【问题描述】:我正在制作一个需要在服务器上运行 java 程序的网站(它是一个 ubuntu 服务器)。我想通过从 php 执行它来实现这一点。我尝试了“shell_exec”和“exec”,但它们都没有打开终端窗口或执行 jar 文件。它确实可以在我的 windows pc 上运行,但我也希望它也可以在我的 linux 服务器上运行。我正在使用 xampp 作为服务器。
我在 windows 上使用的命令:
shell_exec("java -jar PATH/TO/JAR/FILE.jar PARAMETERS");
【问题讨论】:
你可以试试system()
,passthru()
或者proc_open()
,我不知道PHP在windows上是怎么工作的,可能你要使用不同的函数。
@BenoîtZu 不幸的是,这些功能都不起作用。
它实际上并没有打开一个可见的终端窗口,但它应该可以工作。
还要确保执行 php 脚本的用户有权访问该文件并执行它。
此外,如果 Java 应用程序运行异步或长期存在的进程,您必须在 shell_exec()
中执行一些其他操作才能使其继续运行,否则它会运行并立即关闭。
【参考方案1】:
我自己通过在 shell_exec() 命令末尾添加 '2>&1 &' 来修复它。这使得 php 脚本等到程序完成。
新命令:
shell_exec("java -jar PATH/TO/JAR/FILE.jar PARAMETERS 2>&1 &");
【讨论】:
以上是关于如何在php中打开终端窗口并执行命令?的主要内容,如果未能解决你的问题,请参考以下文章