2016-06-07 7 views
3

Ich habe gerade meinen ersten Cron-Jon eingerichtet, um jeden Abend ein Stock-Skript zu erstellen. Das manuelle Ausführen funktioniert einwandfrei.cPanel Cron-Job, keine Eingabedatei angegeben?

ist es gespeichert in /admin/stock_update.php

Der Befehl i laufen bin ist /usr/bin/php -q /admin/stock_update.php

Aber ich bin immer E-Mails sagen, keine Eingabedatei angegeben wird? Irgendwelche Ideen?

Prost

+0

Sind Sie sicher, dass es auf Ihrem Server ein Verzeichnis der obersten Ebene mit dem Namen '/ admin' gibt? Soweit ich weiß, ist das keine Konvention in Linux-Boxen. Denken Sie daran, dass Befehlszeilendienstprogramme Pfade auf der Festplatte und keine Website-URLs erwarten. –

+0

@ ÁlvaroGonzález Ich bin mir nicht ganz sicher, ich habe nicht viel Erfahrung in dieser Art von Sachen. Ich benutze nur den Pfad von meinem FTP. –

Antwort

3

Netzdienste fast nie tatsächlichen Pfade auf der Festplatte des Servers aussetzen und auch wenn sie könnten es ist kein Verhalten, das Sie sich verlassen können. Die Tatsache, dass sich Ihre Datei auf dem FTP-Server unter /admin/stock_update.php befindet, sagt nicht viel über den tatsächlichen Speicherort auf der Festplatte aus, was von lokalen Befehlszeilendienstprogrammen erwartet wird.

In PHP können Sie den Pfad auf der Festplatte der aktuellen Datei mit der __FILE__ magische Konstante finden. Sie können ein Testskript erstellen:

<?php 
var_dump(__FILE__); 

... laden Sie sie auf dem gleichen FTP-Verzeichnis und führen Sie durch den Web-Server. Wenn das keine Option ist, weil Dateien in Ihrem FTP-Konto nicht aus dem Internet sichtbar sind, können Sie die Datei von Cron ausführen und die E-Mail überprüfen.

+0

Hallo Alvaro, danke das macht sehr viel Sinn. Ich habe meinen Cron auf den richtigen Serverpfad aktualisiert, jetzt erhalte ich einen anderen Fehler. 'tmp-Datei kann nicht gelesen werden, um den Bestand zu speichern' –

+0

@ s.poole Ich erhalte einen benutzerdefinierten Fehler von Ihrem Code, der bedeutet, dass Ihre Datei endlich ausgeführt wird. Freut mich, dass du es aussortiert hast. –

0

Haben Sie Cloud Kernel auf dem Server und CageFS filestyem installiert? Wenn ja, versuchen Sie folgendes:

cagefsctl -w cpaneluser; cagefsctl -m cpaneluser

versuchen Sie dann erneut die cron läuft