Page 1 sur 1

php éxécuter un programme graphique sur le serveur

Posté : 10 oct. 2007, 11:44
par szambaux
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]

Posté : 10 oct. 2007, 15:55
par netsupra
Salut,
tentes de faire un "xhost -" sur ton serveur pour que php puisse lancer des applications graphique via le serveur x
Netsupra

Posté : 10 oct. 2007, 19:02
par szambaux
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 &

Posté : 10 oct. 2007, 19:20
par titerm
Essai de mettre nohup devant ton shellflash, cela devrait résoudre ton pb.

Posté : 11 oct. 2007, 08:36
par szambaux
merci pour le nohup cela a résolu le probleme

Posté : 11 oct. 2007, 23:34
par Invité
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 ?

Posté : 11 oct. 2007, 23:36
par netsupra
Salut,
c'etait pour le test
pour plus de securité : xhost + 127.0.0.1
Netsupra

Posté : 15 oct. 2007, 11:45
par szambaux
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

Posté : 15 oct. 2007, 15:04
par szambaux
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

Posté : 15 oct. 2007, 18:29
par Sékiltoyai
Tu peux essayer de définir le HOME de l'user de apache sur "/root", ca vient peut être de là.