Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn Crontab PHP nicht ausführt?

Was soll ich tun, wenn Crontab PHP nicht ausführt?

藏色散人
藏色散人Original
2020-07-27 10:59:292744Durchsuche

Lösung für das Problem, dass Crontab PHP nicht ausführt: 1. Protokoll in PHP-Programm schreiben; 2. In Crontab die Ausführungsergebnisse in eine Datei ausgeben; 4. In PHP absolute Pfade verwenden; der Code.

Was soll ich tun, wenn Crontab PHP nicht ausführt?

Empfohlen: „PHP-Tutorial

Lösung für das Problem, dass Crontab PHP nicht ausführen kann

Bei der Verwendung von crontab zum Ausführen von PHP-Programmen hat jeder seine eigene Art des Debuggens. Ich habe auch eine Methode. Schauen wir uns an, wie ich das Problem gelöst habe, dass Crontab das PHP-Programm nicht ausführen kann.

1. Verfügt die PHP-Datei über eine Ausführungsberechtigung?

Der Code lautet wie folgt:

[root@linux cron]# ls -al |grep del
 -rwxr-xr-x  1 zwh  ftpgroup  494 10-20 16:42 del_redis.php

Wenn kein X vorhanden ist, bedeutet dies, dass keine Ausführungsberechtigung vorhanden ist Natürlich kann es nicht ausgeführt werden. Wenn Sie nicht wissen, ob die Gruppe, bei der der Benutzer, bei dem Sie sich anmelden, über Berechtigungen verfügt, fügen Sie einfach allen Gruppen Berechtigungen hinzu. Die Methode lautet wie folgt:

Der Code lautet wie folgt:

[root@linux cron]# chmod +x ./del_redis.php

2. Wenn Sie die Ausführungsberechtigung haben, sie aber immer noch nicht ausgeführt werden kann

Die Lösung lautet wie folgt :

1. In PHP ist es auch notwendig, Protokolle in das Programm zu schreiben (zum Beispiel: die Funktion error_log()), da crontab regelmäßig ausgeführt wird. Woher wissen Sie dann, welche Ergebnisse vorliegen? der Programmausführung. Auf diese Weise können wir den Ausführungsstatus von Crontab über das Protokoll anzeigen.

2. Sie können die Ausführungsergebnisse auch direkt in eine Datei in crontab ausgeben. Überprüfen Sie dann den Ausführungsstatus in dieser Datei. Zum Beispiel:

Der Code lautet wie folgt:

*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt

3. Die Verwendung von crontab zum Ausführen von PHP verwendet weder Apache noch Nginx, daher können Variablen wie $_SERVER und $_ENV überhaupt nicht verwendet werden . Überprüfen Sie also, ob solche Variablen im PHP-Code vorhanden sind, und entfernen Sie sie gegebenenfalls.

4. PHP-Relativpfadproblem

Aufgrund des falschen Denkens ist dieses Problem auch am einfachsten zu ignorieren.

Der Code lautet wie folgt:

include_once'./mysql.php';

Wenn im PHP-Code ein relativer Pfad verwendet wird, können Sie nur dieses Verzeichnis eingeben, um /usr/local/php/bin/php /var auszuführen /www/ cron/level_rank.php kann wirksam werden. Ich bin mindestens zweimal auf dieses Problem gestoßen, kann mich aber immer noch nicht daran erinnern, wenn ich erneut darauf stoße.

Die Lösung lautet wie folgt:

Der Code lautet wie folgt:

*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php

oder verwenden Sie den absoluten Pfad im PHP-Code

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Crontab PHP nicht ausführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn