Stehpinkler: Cronjob desaster

Hallo,

ich habe ein Problem was mir bisher so nicht bekannt. Ich habe einen Cronjob unter Confixx eingerichtet: /usr/bin/php /var/www/html/web613/html/generate1.php

Das Problem ist das in dem generate1.php diverse Verzeichnisse und Dateien erstellt werden. Als Basis der Verzeichnisse nutze ich immer:
$_SERVER['DOCUMENT_ROOT'];
Leider wird das Verzeichnis im falschen Bereich angelegt. Wenn ich die generate1.php über der Browser ausführe wird alles korrekt angelegt. Ich möchte ungern mit absoluten Pfaden arbeiten, gibt es eine andere Lösung!?

Danke
Stehpinkler

  1. Hi,

    Das Problem ist das in dem generate1.php diverse Verzeichnisse und Dateien erstellt werden. Als Basis der Verzeichnisse nutze ich immer:
    $_SERVER['DOCUMENT_ROOT'];

    Und woher soll $_SERVER['DOCUMENT_ROOT'] gefüllt werden, wenn gar kein Server im Spiel ist, sondern das Script über die Kommandozeile direkt gestartet wird?

    Wenn das Script auch per http[s] abrufbar ist, dann mach halt einen wget/curl/...-Aufruf dieses Scripts per Cronjob.

    Leider wird das Verzeichnis im falschen Bereich angelegt.

    DOCUMENT_ROOT existiert nicht, also wird $_SERVER['DOCUMENT_ROOT'] vermutlich ein Leerstring sein.
    Je nachdem ob Dein Rest-Pfad mit oder ohne Slash startet, wird dann halt im Filesystem-Root oder im Current Working Directory gearbeitet.

    Wenn ich die generate1.php über der Browser ausführe wird alles korrekt angelegt.

    In diesem Fall ist ja auch $_SERVER['DOCUMENT_ROOT'] gefüllt.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  2. Moin!

    Das Problem ist das in dem generate1.php diverse Verzeichnisse und Dateien erstellt werden. Als Basis der Verzeichnisse nutze ich immer:
    $_SERVER['DOCUMENT_ROOT'];
    Leider wird das Verzeichnis im falschen Bereich angelegt. Wenn ich die generate1.php über der Browser ausführe wird alles korrekt angelegt. Ich möchte ungern mit absoluten Pfaden arbeiten, gibt es eine andere Lösung!?

    Jedes PHP-Skript kennt immer die Konstante __FILE__ mit dem Inhalt "Absoluter Pfad zu dieser PHP-Datei". Mit dirname(__FILE__) erhält man den Verzeichnisnamen (ab PHP 5.3 gibts die Konstante __DIR__ dafür).

    Funktioniert auf Kommandozeile genauso wie in jeglichem Serverkontext (Modul, CGI, ISAPI...).

    Siehe http://de3.php.net/manual/de/language.constants.predefined.php

    - Sven Rautenberg