Shell ausgabe per php

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
andy25
Posts: 33
Joined: 2005-03-17 12:45

Shell ausgabe per php

Post by andy25 » 2005-08-15 14:57

Guten Tag,

Ich habe eine ich denke Recht schwierige Frage:

Ich habe ein Webinterface, über dieses ist es möglich Software zu installieren.
Ich würde mir aber gerne die Ausgabe der Shell im WI anzeigen lassen. Ist dies irgendwie Realisierbar?
Es sollen keine commands oder sonstiges möglich sein einzugeben nur die Schlichte ausgabe auf die Seite

Gruß

Andy

timeless2
Posts: 416
Joined: 2005-03-04 14:45
Location: Paris

Re: Shell ausgabe per php

Post by timeless2 » 2005-08-15 16:52

bei webmin gibt es doch eine Pseudo-Shell, wo man auch eine Ausgabe bekommt, demnach müsste das möglich sein.

andy25
Posts: 33
Joined: 2005-03-17 12:45

Re: Shell ausgabe per php

Post by andy25 » 2005-08-15 17:21

hallo,

ja ist korrekt, nur webmin hilft mir hier leider nicht weiter

mydani
RSAC
Posts: 228
Joined: 2003-08-18 19:34

Re: Shell ausgabe per php

Post by mydani » 2005-08-15 18:56

passthru

(PHP 3, PHP 4, PHP 5)
passthru -- Führt ein externes Programm aus und zeigt dessen Ausgabe an
Beschreibung
void passthru ( string befehl [, int return_var] )

Die Funktion passthru() ähnelt der Funktion exec(), da sie ebenfalls einen Befehl ausführt. Ist der Parameter return_var angegeben, wird der Rückgabestatus des UNIX-Befehls hier abgelegt. Sie sollten diese Funktion jedoch an Stelle von exec() bzw. system() benutzen, wenn es sich bei der Ausgabe des Unix-Befehls um binäre Daten handelt, welche direkt zum Browser zurückgeschickt werden müssen. Ein praktisches Beispiel hierfür ist die Ausführung des pbmplus Utility, welches direkt einen Bildstream ausgibt. Wenn Sie den Content-Type auf image/gif setzen, und dann das pbmplus Programm aufrufen um ein GIF zu erzeugen, können Sie auf diesem Weg mittels PHP direkt ein Bild erzeugen und es ausgeben.

Beachten Sie, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.
Der wars nicht aber der hier:
proc_open

(PHP 4 >= 4.3.0, PHP 5)
proc_open -- Execute a command and open file pointers for input/output
Beschreibung
resource proc_open ( string cmd, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]] )

proc_open() is similar to popen() but provides a much greater degree of control over the program execution.

PHP 5 introduces pty support for systems with Unix98 ptys. This allows your script to interact with applications that expect to be talking to a terminal. A pty works like a pipe, but is bi-directional, so there is no need to specify a read/write mode. The example below shows how to use a pty; note that you don't have to have all descriptors talking to a pty. Also note that only one pty is created, even though pty is specified 3 times. In a future version of PHP, it might be possible to do more than just read and write to the pty.