Cronjob PHP und PHP exec

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cronjob PHP und PHP exec

    Guten Abend,

    ich habe ein kleines Problem mit einem gelegten Cronjob und PHP exec, wie im Title beschrieben.

    Mein Cronjob sieht in etwa so aus:
    Code:
    1 * * * * /usr/local/bin/php /home/<domain>/<sub>.<domain>.<tld>/folder/cron.php
    Die Cron.php sieht abgekürzt so aus:
    PHP-Code:
    <?php
    while($vars mysql_fetch_assoc($query)) {
                 
    $param $vars['some_var'];
                 
    $param2$vars['some_var2'];
                 echo 
    'Cron ausgefuehrt! '.$param2.' | '.$param;
                 
    exec('php /home/<domain>/<sub>.<domain>.<tld>/folder/triggerme.php '.$param.' '.$param2.' >/dev/null &');
    }
    ?>
    Wenn ich die Datei cron.php nun über den Browser aufrufe wird der exec bedingungslos und korrekt ausgeführt, also triggerme.php angestupst.
    Per Cronjob ist dies leider nicht der Fall, die exec-Anweisung stimmt hier nicht mehr.
    Zum Server ist kurz zu sagen, Debian-Server, keine Root-Rechte, Lynx nicht möglich (wäre eine alternative, da es per Browser-Aufruf ja klappen würde).

    Ich bin total am Verzweifeln und komme einfach nicht weiter.

    Über Antworten würde ich mich sehr freuen.

    Liebe Grüße

    c0re
    Zuletzt geändert von c0restalker; 05.08.2011, 00:38.

  • #2
    Lynx nicht möglich
    Wget auch nicht??
    Wir werden alle sterben

    Kommentar


    • #3
      Zitat von combie Beitrag anzeigen
      Wget auch nicht??

      Leider leider nicht. Ich weiß auch nicht warum die es gesperrt haben. Es wird sich strikt geweigert eines von beiden freizuschalten :/
      Zuletzt geändert von c0restalker; 07.08.2011, 15:34.

      Kommentar


      • #4
        Such mal bei Google. Es gibt etliche Anbieter, die externe cronjob-Aufrufe anbieten. Könnte helfen.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von Kropff Beitrag anzeigen
          Such mal bei Google. Es gibt etliche Anbieter, die externe cronjob-Aufrufe anbieten. Könnte helfen.

          Peter

          Ich habe fast befürchtet, dass ich dann auf externe cronjobs zu greifen muss. Das wollte ich eigentlich immer vermeiden, weil die URL zum internen cron ja eigentlich nicht "public" werden sollte.
          Also dann vielen Dank, nützt wohl alles nichts.

          Lg

          Kommentar


          • #6
            Nur kurz mal nachgefragt:

            Bist du dir sicher, dass auch alles andere VOR exec(); von der Kommandozeile aus auch einwandfrei funktioniert?
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Wenn ich die Datei cron.php nun über den Browser aufrufe wird der exec bedingungslos und korrekt ausgeführt, also triggerme.php angestupst.
              Per Cronjob ist dies leider nicht der Fall, die exec-Anweisung stimmt hier nicht mehr.
              Die cron.php wird also aufgerufen!
              Dann brauchste kein lynx usw., sondern kannst auch einfach mal file_get_contents() mit einer URL aufrufen.
              Wir werden alle sterben

              Kommentar


              • #8
                Zugriffsrechte und Debugging

                Hallo c0restalker,

                wie sieht es mit den Zugriffsrechten aus? Wenn Du ueber den Browser auf die "Cron.php" zugreifst ist der Benutzer (vermutlich der Webserver) ein anderer als wenn Du per Cron-Job darauf zugreifst.

                Hast Du mal versuchst mit (wirklich) minimalistischen Dateien "Cron.php" und "triggerme.php" zu arbeiten? Dann kannst Du sukzessive Funktionen hinzufuegen, um zu sehen, wann die Probleme auftreten.

                Weshalb leitest Du die Skriptausgabe schon in der Debuggingphase nach "/dev/null"? Besser sowohl die Fehler als auch die Skriptausgabe in eine Datei umleiten, fuer die die entsprechenden Schreibrechte gesetzt sind und die Du spaeter angucken kannst:

                php ... &> pfad/ausgabe.txt

                Kommentar


                • #9
                  Zitat von mephisto111 Beitrag anzeigen
                  Hallo c0restalker,

                  wie sieht es mit den Zugriffsrechten aus? Wenn Du ueber den Browser auf die "Cron.php" zugreifst ist der Benutzer (vermutlich der Webserver) ein anderer als wenn Du per Cron-Job darauf zugreifst.

                  Hast Du mal versuchst mit (wirklich) minimalistischen Dateien "Cron.php" und "triggerme.php" zu arbeiten? Dann kannst Du sukzessive Funktionen hinzufuegen, um zu sehen, wann die Probleme auftreten.

                  Weshalb leitest Du die Skriptausgabe schon in der Debuggingphase nach "/dev/null"? Besser sowohl die Fehler als auch die Skriptausgabe in eine Datei umleiten, fuer die die entsprechenden Schreibrechte gesetzt sind und die Du spaeter angucken kannst:

                  php ... &> pfad/ausgabe.txt

                  Vielen Dank für Eure ganzen Beiträge. Habe es nun mit der ersten Möglichkeit über file_get_contents($myurl) gelöst und einen cronjob auf diese Datei gelegt.

                  Und ja, alles vor exec(), sowohl include() als auch fopen() und meine Functions, sowie der Verbindungsaufbau zur Datenbank funktionierte.

                  Die Skriptausgabe habe ich umgeleitet, da ich per ini_set einen eigenen error_log geschrieben habe, da das interne mail-system vom Hoster auch irgendwie zerschossen wurde und ich ohne übertrieben gesagt 10 cronjobs zu legen sonst nicht an die Log-Datei gekommen wäre.
                  Fakt ist nun, dass ich wohl auch mal über einen Host-Wechsel nachdenken soll, der mir einen funktionierenden SSH-Zugriff gewährt.

                  Also ein herzliches noch einmal an alle

                  Thema ist damit für mich soweit erledigt, falls von Euch keine Fragen mehr auftauchen


                  Liebe Grüße

                  c0re
                  Zuletzt geändert von c0restalker; 09.08.2011, 19:01. Grund: dokumentation für andere die das selbe problem haben übersichtshalber

                  Kommentar

                  Lädt...
                  X