Cron-job funktioniert nicht richtig in cpanel
Ich habe setup cron-job, es ist Arbeit richtig, aber wenn ich direkt läuft die php-Datei(aus dem Pfad/url) es erfolgreich läuft, aber von der cron auch nicht. Allerdings habe ich eine andere sehr einfache Datei, um sicherzustellen, dass meine cron-Befehl/Pfad korrekt eingestellt ist, erstellte ich eine andere Datei und verwendet einfache php-mail-Funktion und die läuft erfolgreich. Freundlich darauf hin mir die möglichen Bereiche zu kümmern. (Ich bin mit Cpanel)
- Sie haben einige relative Pfade im php-code, den Sie ausführen möchten, über cron, vielleicht etwas gehört?
- können Sie Ihre komplette Befehl vom cron-job ?
- Versuchen PHP-Datei über die Konsole (wie putty), und prüfen Sie es auf Fehler. Problem könnte sein, auf include() oder require() die Datei-Pfade.
- ja, ich habe einige Dateien
- wenn Sie relative Pfade wie Dusan erwähnt, dass es beste Weg, um zu rufen Sie Ihr script im cronjob über http mit curl. Dies sollte Ihr problem lösen. curl http ://www.example.com/phpscript.php > /dev/null
- können Sie mir bitte einige Beispiele, wie das zu erreichen cronjob über http mit curl? ändern sollte cronjob der Pfad oder der Pfad der eingebundenen Dateien?
- anstatt dass Sie in der cronjob-Befehl wie php -f /path_to_script/script.php, put-Befehl, wie das "curl http: //domain.com/yourscript.php" (ohne Anführungszeichen)
- also meine aktuelle Pfad ist
/usr/local/php4/bin/php /home/serverusername/public_html/test_cron/readmails.php
sollte ich es ändern zucurl http://mydomain.com/test_cron/readmails.php
? - Ja, und wenn Sie nicht wollen, Ausgang, als Sie hinzufügen können > /dev/null am Ende. Also komplette Befehl: curl http: //mydomain.com/test_cron/readmails.php > /dev/null
- danke @alan978 es funktioniert wie du gesagt hast, bitte post ist als Antwort also kann ich es akzeptieren
- Dann jemand mit der URL ausführen können, Ihre cron - Verwendung von curl ist eine schreckliche Idee.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt in cronjob-Befehl wie
put-Befehl wie dieser:
wenn Sie wollen, unterdrücken Sie die Ausgabe, die Sie hinzufügen können
> /dev/null
am Ende.So vollständige Befehl wäre:
Hoffe, das hilft!
Als alternative zu cURL, können Sie rufen Sie Ihr Skript durch text-basierte browser. So etwas wie dieses:
Sollten Sie keine relativen Pfade -- dies schließt sowohl Dateien und Befehle. Zum Beispiel, sollten Sie nicht rufen Sie einfach
cp
wenn Sie möchten, um eine Datei zu kopieren, aber so etwas wie/bin/cp
mit der vollständigen Pfad auf den Befehl. Um herauszufinden, den vollständigen Pfad ein, den Sie ausführen könnenwhich <cmd>
auf der Kommandozeile.