2009-03-28 4 views
4

Ich habe viele Fragen und Artikel zu diesem Thema gefunden, aber ich habe immer noch einige Schwierigkeiten. Ich verwende den folgenden Befehl /usr/bin/php home/domain.com/public_html/cron/script.php Ich erhalte den folgenden Fehler Status: 404 nicht gefunden X-Powered-By: PHP/5.2 .8 Inhaltstyp: text/htmlWie führe ich ein PHP-Skript in Cron

Keine Eingabedatei angegeben.

i Cpanel bin mit, die Datei auf domain.com/cron/script.php Anyideas gehostet wird, dank: p

Antwort

5

Versuchen:

wget -O - http://domain.com/cron/script.php 

und sehen, ob Sie eine besser Ergebnis.

Edit: hinzugefügt "- O -", um keine Ausgabe in den Home-Ordner zu schreiben.

+0

starten. Meine Arbeit mag funktionieren, aber Sie können sich die besser begründete Antwort des Chaos ansehen. –

+0

Das funktioniert gut von mir! wie mein PHP-Skript hat auch eine Befehlscodierung, um die E-Mails zu planen. Danke @Lacqui – McElie

11

Setzen Sie einen führenden Schrägstrich auf dem Skriptnamen, dh

/usr/bin/php /home/domain.com/public_html/cron/script.php 

Es sei denn, Sie tatsächlich beabsichtigen, das Skript über das Web zu laufen, wie in lacqui Antwort, und Sie nichts dagegen nicht zufällig Dritte sein in der Lage, es jederzeit auszuführen, es gibt keinen Grund, dass Sie es in Ihr public_html-Verzeichnis einfügen sollten; ganz im Gegenteil.

+0

Guter Punkt darüber, das Skript nicht öffentlich zu machen. –

+0

Ich füge hier hinzu, weil es wahrscheinlich nicht offensichtlich für OP ist: Durch zufällige Dritte, die es ausführen können "wann immer sie wollen", meine ich auch "viele Male eine Sekunde". Da CPU-intensive und speicherintensive Aufgaben häufig Kandidaten für Cron-Jobs sind, können Sie Benutzern einen leichten Denial-of-Service-Angriff austeilen. – chaos

+0

Nur wenn Sie nicht sicherstellen, dass es nicht bereits zuerst ausgeführt wird. Verwenden Sie Ihre Datenbank, um einen Guard-Zeitstempel "CRON last started at" zu erstellen. Dann in Ihrem Cron nicht laufen, wenn der Zeitstempel X Minuten/Stunden alt ist. – jmucchiello

1

Möglicherweise müssen Sie die binäre PHP-CLI anstelle von nur PHP verwenden.

+0

Das ist für Windows, in * nix verwenden Sie einfach/usr/bin/php. Und durch die Erwähnung von Cron ist es definitiv * nix Umgebung. –

+0

@cemkalyoncu: Einige Systeme liefern ein separates php-cli, das zusätzliche Sachen wie readline und andere enthält. Kann in der Befehlszeile nützlich sein. –

1

Ich bin mir bewusst, dass es eine alte Frage ist und dass Sie eine Lösung gefunden haben, aber keine der Antworten half mir und ich bekam den gleichen 404 Fehler, als ich ein Cron-Skript lief.

Das Problem hing damit zusammen, wie der Pfad zum PHP-Skript geschrieben wurde. Der Pfad muss von public_html wie dieser /usr/bin/php public_html/public/index.php

Verwandte Themen