Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn Crontab PHP nicht ausführt?
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.
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!