2010-11-20 8 views
0

Ich versuche, ein Open-Source-Kiosk wie System zu machen. Wenn der Webbrowser alle Programme startet, wird er im Browser mit PHP ausgeführt. Ich habe diesen Link gefunden: Program execution Functions. Es ist mit:Wie starte ich ein Programm von Webbrowsern mit PHP

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

ich in der Lage war Microsoft Word unter Windows zu starten, aber ich muß in der Lage sein, dies auf Linux zu tun. Dies ist, was ich versucht habe, auf meinem Linux-Server:

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

Aber nichts passiert. Ich weiß, dass test.sh funktioniert, weil ich vom Terminal aus lief. Ich benutze test.sh, um ein Python-Skript zu starten. Das Python-Skript startet einen Texteditor. Ich habe das Python-Skript getestet und es funktioniert. Alles, was ich wissen muss, ist, wie man das Skript von PHP auf Linux startet.

+0

Welcher Browser (n) benötigen Sie dies auf Linux zu arbeiten? –

+0

Ich werde Firefox verwenden – acrs

Antwort

1

Ich musste die test.sh-Besitzer-Erlaubnis zu www-Daten dann hinzufügen

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

/etc/sudoers dann der PHP-Code

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

Probieren Sie shell_exec aus.

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

Stellen Sie außerdem sicher, dass die ausführbare "Berechtigung" festgelegt ist.

Zusätzlich müssen Sie den Texteditor als eingeloggten Benutzer ausführen (wahrscheinlich tun Sie dies mit sudo oder so) und die Umgebungsvariable DISPLAY auf :0.0 (oder was auch immer das Richtige für Sie ist). Beispiel:

fügen Sie diese /etc/sudoers:

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

(<tab> bedeutet, dass ein echter Reiter dort gehört, bearbeiten Sie die Datei von visudo als root ausführen)

Inhalt des Drehbuchs:

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

Danke, aber es hat nicht funktioniert – acrs

+0

@ user514584: Sind Sie sicher, dass Sie es ausführbar gemacht? Was sagt 'ls -l/var/www/test.sh'? Gibt es drei r und drei x? – thejh

+0

Das ist, was es mir gab -rwxr-xrwx 1 root root 11 2010-11-20 12:14 /var/www/test.sh – acrs

Verwandte Themen