Wie führe ich eine PHP-Datei mit Crontab aus?

Wie führe ich eine PHP-Datei mit Crontab aus?

Ich habe Ubuntu mit Lamp eingerichtet und habe mich gefragt, was ich eingeben müsste, um beispielsweise jeden Tag um 2 Uhr morgens eine PHP-Seite zu starten. Ich lerne noch, wie Crontab funktioniert, daher kann ich nicht testen, welches funktioniert.

Wenn ich also so etwas habe, wie würde ich die Parameter in die PHP-Seite einfügen?

30 18 * * * http://myip/mypage.php?action=do_something

Soll ich es so eingeben oder mit absolutem Pfad? So

30 18 * * * /var/www/mypage.php?action=do_something

Antwort1

Sie sollten auf jeden Fall Methode eins verwenden. Das ist

30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something

Dadurch wird die Datei mit wget (einem Dateidownloadprogramm) über den üblichen Webweg abgerufen. Das bedeutet, dass PHP das Skript interpretiert, wenn Apache die Anfrage verarbeitet, und Sie das Skript ausführen.

Ich bin ziemlich sicher, dass es auch möglich ist, dies mit Methode 2 auszuführen, indem Sie die PHP-CLI-Anwendung aufrufen und den Pfad zu Ihrem Skript als Argument übergeben, aber in den meisten Fällen würde das keinen wirklichen Unterschied machen.

Antwort2

Der Befehl, den Sie in Ihren Cron einfügen, hängt davon ab, wie die PHP-Datei tatsächlich geschrieben ist. Wenn die Datei ein Skript unter einem Webserver ist, funktioniert wget wie erwähnt einwandfrei. Beachten Sie, dass bei dem obigen Befehl -O bedeutet, dass die Ausgabe in eine Datei geschrieben wird, -q ist leise und -t dient zur Begrenzung der Anzahl der Wiederholungsversuche.

Wenn das PHP-Skript jedoch ein Shell-Skript ist, ist wget nutzlos. In diesem Fall muss die Datei ausführbar sein und Ihr Cron-Befehl würde folgendermaßen aussehen:

30 18 * * * /usr/bin/env php /path/to/script

verwandte Informationen