Frage

ich auf eine Anwendung arbeite, die lokal läuft auf einem Fedora 10 Maschine über PHP und Apache. Es hängt von einem Prozess, der im Hintergrund ausgeführt wird.

Die höheren-ups wollen in der Lage sein, den Prozess Start / Stopp / Neustart über den Browser. Ich habe versucht, dies durch die Arbeit zu bekommen, die PHP-Anrufe an dem System macht mit exec () und shell_exec, aber es scheint nicht zu funktionieren.

Wenn ich versuche, den Vorgang zu starten "exec ( 'process')" verwendet wird, passiert nichts.

Wenn ich versuche, „exec (‚killall process‘)“, SELinux beginnt ständig Warnungen aufbrauchen, dass der Prozess durfte popping (weil ich es in den Permissive-Modus versetzt), aber es nicht wirklich um den Prozess zu töten! Aber das scheint auf zu gehen, selbst nachdem die Seite vollständig geladen!?!?

Ich bin in der Lage ein anderes Skript in ähnlicher Weise zu nennen: "exec ( '/ var / www / cgi-bin / Steuerprogramm START')". Also ich bin nicht wirklich sicher, was die großen Unterschiede zwischen den beiden Anrufen / Befehle.

Ich habe den Skript Aufruf in die /etc/rc.local-Datei auch das Skript bei der Anmeldung ausgeführt zu haben. Allerdings werde ich das Skript von PHP töten kann, da sein lief durch ... das System?

Ich bin kein Guru, wenn es um Berechtigungen kommt / SELinux, so scheuen Sie nicht auf die blutigen Details! Vielen Dank im Voraus!

War es hilfreich?

Lösung 2

Ich glaube, ich habe das Problem gefunden. Ich bin immer noch nicht ganz sicher, was das Problem ist, aber es sieht aus wie es etwas mit Datei / Verzeichnisberechtigungen zu tun hat. Als ich die Skripte in meinem / var / www / html Verzeichnis verschoben, lief die Skripte. Ich zog sie in / var / www / cgi-ist und sie arbeiten auch dort. So könnte es etwas sein, wo Apache nicht Skripte ausführen können, die außerhalb des / var / www Verzeichnis sind, oder zumindest kann sie nicht direkt tun. obwohl Vielen Dank für Ihre Hilfe!

Andere Tipps

Wenn Sie die administrative Kontrolle über dieses System haben wollen Sie die PHP-Konfiguration überprüfen (stellen Sie sicher, es ist das Konfigurationsprofil für den Web-Server).

safe_mode wird PHP verhindern, dass irgendetwas außerhalb eines bestimmten Ordners ausgeführt wird. In einer Shared-Hosting-Umgebung, dies in der Regel bedeutet, dass Sie nur Dinge ausführen können, die zu Ihnen nach Hause / www Ordner relativ sind -., Die den Fall zu sein scheint, auf der Grundlage Ihrer Notizen

Es klingt wie alte Schule Unix-Berechtigungen und wie Apache arbeitet. Ich erinnere mich (obwohl es einige Zeit gewesen ist), dass Apache ist vorsichtig auf das, was sie ausführen wird. Überprüfen Sie Ihre octals.

Um sicherzustellen, dass es nicht SELinux Sie es, anstatt es in permissiven setzen deaktivieren. obwohl dies ein Dateisystem neu kennzeichnen (oder sollte) verursachen. An diesem Punkt Ihrer erweiterten Attribute mit den SELinux Kontexten aus wack bekommen konnten und SELinux Probleme verursachen erneut bei der Durchsetzung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top