Hallo,
erst einmal was zum Szenario: Ich habe eine mit PHP geschriebene Seite, auf welcher ich gerne mit exec() Befehle über die Shell ausführen möchte. Diese werden in ein Logfile geschrieben und auf meiner Seite angezeigt.
Mit Befehlen wie "ls -l" oder einfach nur "ls" sowie allen anderen üblichen Befehlen funktioniert das ganze tadellos.
Der Apache/2.2.3 (CentOS) Sever läuft über den User "test123" in der Gruppe "Apache". Wenn ich mich über das Terminal und su als User test123 einlogge, habe ich noch Zugriff auf weitere Befehle, welche ich vorher konfiguriert habe und welche in /opt eingebunden sind. Das sind einfach später installierte Kommandozeilenprogramme.
Wenn ich diese aber über exec() aufrufen möchte, habe ich keinen Zugriff darauf. Es kommt nur "command not found". Führe ich über exec() "whoami" aus, wird korrekt test123 als User angezeigt.
Warum habe ich direkt über das Terminal Zugriff auf Befehle, über exec() aber nicht? Der PHP Safe_Mode ist off. Gibt es in der httpd.conf noch Möglichkeiten, zusätzliche Befehle einzubinden?
Über Tipps und Ratschläge wäre ich sehr dankbar.
Noch kurz die Serverkonfiguration: Apache/2.2.3 (CentOS), PHP Version 5.1.6
Viele Grüße