Ich arbeite an einer Anwendung, die lokal auf einem Fedora 10-Rechner über PHP und Apache läuft. Es hängt von einem Prozess ab, der im Hintergrund abläuft.Systembefehle und Shell-Skripte von PHP Fedora 10 kann nicht aufgerufen werden
Die übergeordneten Benutzer möchten den Prozess über den Browser starten/stoppen/neu starten können. Ich habe versucht, dies zum Laufen zu bringen, indem PHP mit exec() und shell_exec Aufrufe an das System macht, aber es scheint nicht zu funktionieren.
Wenn ich versuche, den Prozess mit "exec ('processName')" zu starten, passiert nichts.
Wenn ich versuche, "exec ('killall processName')" zu verwenden, startet SELinux ständig Warnmeldungen, dass der Prozess erlaubt wurde (weil ich es in permissive Modus), aber es tötet den Prozess nicht tatsächlich! Aber das scheint weiterzugehen, auch nachdem die Seite voll geladen ist!?!?
Ich bin in der Lage, ein anderes Skript auf ähnliche Weise aufzurufen: "exec ('/ var/www/cgi-bin/ControlProgram START')". Ich bin mir also nicht wirklich sicher, was die Hauptunterschiede zwischen den beiden Aufrufen/Befehlen sind.
Ich habe auch den Skriptaufruf in die Datei /etc/rc.local gesetzt, damit das Skript bei der Anmeldung ausgeführt wird. Kann ich dieses Skript jedoch von PHP abschaffen, da es von ... dem System ausgeführt wird?
Ich bin kein Guru, wenn es um Berechtigungen/SELinux kommt, also nicht auf die blutigen Details verschonen! Danke im Voraus!
Danke für die Antworten bisher. Ich werde heute Abend deine Beispiele ausprobieren, Aaron. Nolte, ich glaube nicht, dass ich die php.ini sehr verändert habe, aber ich werde nachsehen. Vielen Dank. –