使用 php 在 ubuntu 服务器上启动应用程序

使用 php 在 ubuntu 服务器上启动应用程序

我正在尝试制作一个仅包含我需要的软件的最小 Ubuntu 系统。我决定为此使用 Ubuntu 服务器 14.04 并安装 openbox 作为 GUI。我还设置了 nginx 以在系统上与 php 配合使用。我设置 Web 服务器的主要目的是通过按下 html 按钮通过服务器在我的系统上打开 GUI 应用程序。

我的目标是让电脑连接到电视,然后能够使用手机控制电视。我觉得最简单的方法是在需要时通过网站启动我需要的应用程序,因为我无论如何都会在电脑上安装服务器

我可以确认 Web 服务器和 PHP 运行正常。但是我无法启动应用程序。我使用以下代码来获取按下按钮时的输出

<?php
     if ($_GET['buton']) {
           echo exec("kodi 2>&1", $output);
           echo $output;
<?
<div id="button"><a href="?kodi=true">kodi</a></button>

结果是

ERROR: Unable to create application. Exiting

目前,我正在虚拟机中运行它,以确保在将其安装到物理机器上之前一切正常。

如果有人能帮助我解决这个问题我将非常感激。

答案1

首先,不要重新发明轮子。有各种各样的应用程序可以让你的手机充当无线键盘/鼠标。例如(这些只是我碰巧知道的,还有负载):

你还有类似的东西科迪(以前称为 XBMC)将您的计算机变成可以满足您需求的媒体中心。


如果您仍然希望自己设置某些内容,则需要允许用户nginx连接到现有的 X 会话。您还需要手动登录一次(或将机器设置为自动登录到 GUI)。您实际上可以让服务器启动 X 会话,但让用户这样做更有意义,这样您的所有设置等都在那里。

  1. 允许其他用户连接到您的 X 会话。

    您需要运行xhost +以禁用访问控制。最简单的方法是将该命令添加到您的~/.profile。编辑~/.profile并添加以下行:

    ## Only run this when logging in graphically
    [ -z "$DISPLAY" ] && xset +
    
  2. 您需要告诉您的 php 应用程序DISPLAY要连接到哪个。例如:

    <?php
    if ($_GET['button']) {
      $cmd = "export DISPLAY=:0;  kodi";
      exec($cmd);
    }
    ?>
    
    <div id="button"><a href="./a.php?button=1">kodi</a></div>
    

注意这是非常不安全的,使用风险自负。

相关内容