php éxécuter un programme graphique sur le serveur

szambaux
Invité n'ayant pas de compte PHPfrance

10 oct. 2007, 11:44

Bonjour j'ai un script php qui lance un script shell

Code : Tout sélectionner

<?php echo shell_exec('sudo toor'); echo "passwd"; echo exec('testconnect 80') ?>
L'utilisateur tour est celui qui ouvre une session graphique sous linux

le script shell est le suivant testconnect

Code : Tout sélectionner

#! /bin/sh DISPLAY=localhost:0 # détermine l'écran d'affichage flashplayer http://127.0.0.1:$1/Appliance/menu.swf &
le script shell est bien lancé car je le vois lorsque j'éxécute un ps -e mais le probleme c'est que il n'ouvre pas flashplayer sur le bon display

var/log/error.log
(flashplayer:30528): Gtk-WARNING **: cannot open display:

donc ma question est comment faire pour lancer un programme graphique sur le serveur avec php

[/code]

Eléphant du PHP | 187 Messages

10 oct. 2007, 15:55

Salut,
tentes de faire un "xhost -" sur ton serveur pour que php puisse lancer des applications graphique via le serveur x
Netsupra

szambaux
Invité n'ayant pas de compte PHPfrance

10 oct. 2007, 19:02

alors c'est bon flash player s'éxécute bien sur le serveur merci pour le xhost + le seul probleme que j'ai c'est que tant que je n'est pas fermé flashplayer apache ne récupere pas la main et ne répond plus
mon script php est le suivant

Code : Tout sélectionner

echo shell_exec('sudo root'); echo "020591"; $var = shell_exec('shellflash titi.swf &');

mon script shell (shellflash) est le suivant

Code : Tout sélectionner

#!/bin/sh DISPLAY=:0.0 flashplayer $1 &

Mammouth du PHP | 505 Messages

10 oct. 2007, 19:20

Essai de mettre nohup devant ton shellflash, cela devrait résoudre ton pb.

szambaux
Invité n'ayant pas de compte PHPfrance

11 oct. 2007, 08:36

merci pour le nohup cela a résolu le probleme

Invité
Invité n'ayant pas de compte PHPfrance

11 oct. 2007, 23:34

bonsoir,
c'est interessant. Tu peut nous montrer la commande complète (aussi bien xhost que la ligne avec nohup) ?
ps : c'est juste un peu gênant le xhost +, c'est pas conseillé d'autoriser tout le monde à ce connecter à X. Y'aurait pas moyen de faire un xhost user:local un truc comme ça ?

Eléphant du PHP | 187 Messages

11 oct. 2007, 23:36

Salut,
c'etait pour le test
pour plus de securité : xhost + 127.0.0.1
Netsupra

szambaux
Invité n'ayant pas de compte PHPfrance

15 oct. 2007, 11:45

la commande qui focntionne est nohup shellflash 127.0.0.1/titi.swf >/dev/null

par contre j'ai un petit soucis, flashplayer s'ouvre correctemnt aucune erreur dans le log d'apache mais il ne retiens pas les parametres c'est a dire qui doit lui manquer un profile, du coup j'ai essayé de lancer mon script d'une console non graphique, cela marche correctement, en ssh cela marche correctement, et si je créer un utilisateur, que je supprime sont /home/.macromedia et que je lance mon script cela marche correctement, il y a pas une configuration a faire dans apache pour su'il ouvre les profile ou qu'il charge les bonne variables d'environement

szambaux
Invité n'ayant pas de compte PHPfrance

15 oct. 2007, 15:04

j'ai mis strace -f -ff -o /tmp/flashplayer.trace dans mon shell script aprés avoir analysé tout les résultat qui sont nombreux(trés nombreux) j'ai trouvé une erreur qui pourrait etre responsable de la perte des parametres

Quand je ne perd pas les parametres j'ai
open("/root/.mozilla/firefox/profiles.ini", 0_RDONLY) = 4

et le lancement avec php donne
open ("/.mozilla/firefox/profiles.ini", 0_RDONLY) = -1 ENOENT (no such file or directory)

donc je php ne va pas chercher le profile dans le bon PATH mais comment lui indiquer? merci

ViPHP
ViPHP | 5924 Messages

15 oct. 2007, 18:29

Tu peux essayer de définir le HOME de l'user de apache sur "/root", ca vient peut être de là.