Linux Command in PHP funktionniert nicht

bilobill

Grünschnabel
Hi
Ich schreibe gerade mein Programm in PHP, will auch nach einer bestimmten Bedingung 2 Linux Kommando ausführen:

chown nagios.www und danach chmod 660 auf die Datei nagios.cmd im Verzeichnis '/usr/local/nagios/var'

Das ist was ich gemacht habe:

Code:
if (file_exists($SETS['nagios']['pidfile'])) {
 
 $filepath = '/usr/local/nagios/var ';
 
     exec("chown nagios.www nagios.cmd $filepath ");
     exec("chmod 660 nagios.cmd $filepath");
    fopen($filepath,"w");
}

Aber es scheint als nicht zu funktionnieren. Wenn ich selber in Komsole Mode entippt, funktionniert ohne Probleme.

Was geht nicht?

Grüß
 
  • Die berühmten Zeilen
PHP:
ini_set('display_errors', 'on');
error_reporting(E_ALL);
an den Anfang des Scripts packen und die meist englischen Fehlermeldungen beachten,

  • auf Existenz des Pfads prüfen: [phpf]is_readable[/phpf],
  • zur Not vor dem Setzen der Zugriffsrechte via [phpf]mkdir[/phpf] Verzeichnis, oder via [phpf]touch[/phpf] Dummydatei erstellen,
  • [phpf]chmod[/phpf] und [phpf]chgrp[/phpf] und [phpf]chmod[/phpf] verwenden.
  • Ansonsten [phpf]escapeshellcmd[/phpf] oder [phpf]escapeshellarg[/phpf] auf die Exec-Strings oder einzelne Bestandteile wirken lassen.
 
Das hängt von deiner php.ini Konfiguration ab, welche du im PHP-Installationsverzeichnis finden kannst.
Um solche "systembasierenden" Funktionen zu nutzen, muss der SafeMode deaktiviert werden und eventuell gesperrte Funktionsbezeichnungen müssen wieder freigegeben werden. All das wird man aber während des Durchstöberns der php.ini - Falls zugriffsberechtigt - selbst herausfinden können ;)
 
Zurück