web-dev-qa-db-fra.com

Lancer l'application sur le serveur ubuntu en utilisant php

J'essaie de créer un système Ubuntu minimal qui n'a que le logiciel dont j'ai besoin. J'ai décidé d'utiliser le serveur Ubuntu 14.04 pour cela et d'installer openbox comme interface graphique. J'ai également configuré nginx pour travailler avec php sur le système. Le principal objectif pour moi de configurer le serveur Web était d'ouvrir les applications GUI sur mon système via le serveur en appuyant sur un bouton html.

Mon objectif est de laisser un ordinateur connecté au téléviseur et de pouvoir le contrôler à l'aide de mon téléphone. Je pensais que la façon la plus simple de le faire serait de lancer les applications dont j'avais besoin sur le site Web quand j'en avais besoin, car je vais quand même installer un serveur sur l'ordinateur

Je peux confirmer que le serveur Web et PHP fonctionnent correctement. Cependant je ne suis pas en mesure de lancer l'application. J'ai utilisé le code suivant pour obtenir la sortie lorsque j'appuie sur le bouton

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

Le résultat est

ERROR: Unable to create application. Exiting

Actuellement, je l'exécute sur une machine virtuelle pour m'assurer que tout fonctionne avant de l'installer sur une machine physique.

J'apprécierais vraiment que quelqu'un puisse m'aider à résoudre ce problème.

2
Rumesh

Tout d'abord, ne réinventez pas la roue. Il existe diverses applications qui permettent à votre téléphone d'agir comme un clavier/souris sans fil. Par exemple (ce ne sont que ceux que je connaissais, il y a charges):

Vous avez également des choses comme Kodi (précédemment connu sous le nom de XBMC) pour transformer votre ordinateur en un centre multimédia qui pourrait faire ce dont vous avez besoin.


Si vous préférez toujours configurer quelque chose vous-même, vous devrez autoriser l'utilisateur nginx à se connecter à une session X existante. Vous devrez également vous connecter une fois manuellement (ou simplement configurer la machine pour une connexion automatique à l'interface graphique). Vous pouvez en fait demander à votre serveur de démarrer une session X, mais il est plus logique que votre utilisateur le fasse pour que tous vos paramètres, etc. soient là.

  1. Autorisez d'autres utilisateurs à se connecter à votre session X.

    Vous devrez exécuter xhost + pour désactiver le contrôle d'accès. La manière la plus simple serait d'ajouter simplement cette commande à votre ~/.profile. Éditer ~/.profile et ajoutez ces lignes:

    ## Only run this when logging in graphically
    [ -z "$DISPLAY" ] && xset +
    
  2. Vous devrez indiquer à votre application php à quelle DISPLAY vous connecter. Par exemple:

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

Notez que c'est très précaire , utilisez à vos risques et périls.

2
terdon