2010-11-20 2 views
0

J'essaie de faire un système de type kiosque open source. Lorsque le navigateur Web démarre tous les programmes, il s'exécute dans le navigateur en utilisant PHP. J'ai trouvé ce lien: Program execution Functions. Il utilise:Comment démarrer un programme à partir de navigateurs web en utilisant php

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

j'ai pu démarrer Microsoft Word sur Windows, mais je dois être en mesure de le faire sous Linux. C'est ce que j'ai essayé sur mon serveur Linux:

<?php 
    exec("/var/www/test.sh"); 
?> 

Mais rien ne se passe. Je sais que test.sh fonctionne parce que j'ai couru si du terminal. J'utilise test.sh pour démarrer un script Python. Le script Python démarre un éditeur de texte. J'ai testé le script Python et cela fonctionne. Tout ce dont j'ai besoin c'est comment démarrer le script depuis PHP sous Linux.

+0

Quel navigateur (s) avez-vous besoin que cela fonctionne dans Linux? –

+0

je vais utiliser firefox – acrs

Répondre

1

J'ai dû changer l'autorisation de propriétaire de test.sh à www-data puis ajouter

Cmnd_Alias RUN = /var/www/test.sh 
www-data  ALL = (root) NOPASSWD: RUN 

/etc/sudoers alors le code php

<?php 
shell_exec("sudo /var/www/test.sh"); 
?> 
6

Essayez le shell_exec.

shell_exec("/var/www/test.sh"); 

De même, assurez-vous que l'autorisation "Autorisation" est définie.

De plus, vous devez exécuter l'éditeur de texte en tant qu'utilisateur connecté (probablement avec sudo ou plus) et définir la variable d'environnement DISPLAY sur :0.0 (ou ce qui vous convient). Exemple:

ajouter ceci à /etc/sudoers:

ALL<tab>ALL=(kioskuser) NOPASSWD: ALL 

(<tab> signifie qu'un vrai onglet appartient là, éditer le fichier en exécutant visudo en tant que root)

contenu

du script:

#!/bin/bash 
export DISPLAY=:0.0 
sudo -u kioskuser /path/to/the/editor/command 
+0

merci, mais cela n'a pas fonctionné – acrs

+0

@ user514584: Êtes-vous sûr que vous l'avez rendu exécutable? Que dit 'ls -l/var/www/test.sh'? Y a-t-il trois r et trois x? – thejh

+0

C'est ce que cela m'a donné -rwxr-xrwx 1 root root 11 2010-11-20 12:14 /var/www/test.sh – acrs

Questions connexes