如何使用php从web浏览器启动程序

acr*_*crs 0 php linux

我正在努力建立一个类似系统的开源信息亭.当Web浏览器启动所有程序时,它将使用PHP在浏览器中运行.我找到了这个链接:程序执行功能.它正在使用:

<?php
  $WshShell = new COM("WScript.Shell");
  $oExec = $WshShell->Run("WINWORD.exe", 7, false);
?>
Run Code Online (Sandbox Code Playgroud)

我能够在Windows上启动Microsoft Word,但我需要能够在Linux上执行此操作.这是我在Linux服务器上尝试过的:

<?php
  exec("/var/www/test.sh");
?>
Run Code Online (Sandbox Code Playgroud)

但没有任何反应.我知道这很test.sh有效,因为我从终端跑了.我test.sh用来启动Python脚本.Python脚本启动文本编辑器.我已经测试了Python脚本并且它可以工作.我需要知道的是如何从Linux上的PHP启动脚本.

the*_*ejh 6

试试shell_exec.

shell_exec("/var/www/test.sh");
Run Code Online (Sandbox Code Playgroud)

另外,请确保设置了可执行文件"permission".

此外,您必须以登录用户身份运行文本编辑器(可以使用sudo左右),并将DISPLAY环境变量设置为:0.0(或适合您的任何内容).例:

将此添加到/etc/sudoers:

ALL<tab>ALL=(kioskuser) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

(<tab>表示真正的选项卡属于那里,通过visudo以root身份执行来编辑文件)

脚本内容:

#!/bin/bash
export DISPLAY=:0.0
sudo -u kioskuser /path/to/the/editor/command
Run Code Online (Sandbox Code Playgroud)