Que dois-je faire si crontab n'exécute pas php ?

藏色散人
Libérer: 2023-03-03 11:32:01
original
2818 Les gens l'ont consulté

Solution pour que crontab n'exécute pas php : 1. Écrivez le journal dans le programme php ; 2. Dans crontab, affichez les résultats de l'exécution dans un fichier ; 3. Utilisez crontab pour exécuter php ; le code.

Que dois-je faire si crontab n'exécute pas php ?

Recommandé : "Tutoriel PHP"

Solution au problème selon lequel crontab ne peut pas exécuter php

Lorsque vous utilisez crontab pour exécuter des programmes PHP, chacun a sa propre façon de déboguer. J'ai aussi une méthode. Voyons comment j'ai résolu le problème selon lequel crontab ne peut pas exécuter de programmes PHP.

1. Le fichier php a-t-il une autorisation d'exécution ?

Le code est le suivant :

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

S'il n'y a pas de X, cela signifie qu'il n'y a pas d'autorisation d'exécution, et bien sûr, il ne peut pas être exécuté. Si vous ne savez pas si le groupe auquel l'utilisateur auquel vous vous connectez dispose d'autorisations, ajoutez simplement des autorisations à tous les groupes. La méthode est la suivante :

Le code est le suivant :

[root@linux cron]# chmod +x ./del_redis.php
Copier après la connexion

2. Si vous avez l'autorisation d'exécution, mais qu'il ne peut toujours pas être exécuté

La solution est la suivante :

1. En php Il faut aussi écrire des logs dans le programme (par exemple : la fonction error_log()), car crontab est exécuté régulièrement S'il n'y a pas de log, comment connaître les résultats. de l’exécution du programme. De cette façon, nous pouvons voir l'état d'exécution de crontab via le journal.

2. Vous pouvez également sortir directement les résultats de l'exécution dans un fichier dans crontab. Vérifiez ensuite l'état d'exécution dans ce fichier. Par exemple :

Le code est le suivant :

*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt
Copier après la connexion

3. Utiliser crontab pour exécuter php n'utilise pas Apache ou nginx, donc les variables telles que $_SERVER et $_ENV ne peuvent pas du tout être utilisées. . Vérifiez donc s'il existe de telles variables dans le code php et supprimez-les si c'est le cas.

4. Le problème du chemin relatif de php

En raison d'une mauvaise réflexion, ce problème est également le plus facile à ignorer.

Le code est le suivant :

include_once'./mysql.php';
Copier après la connexion

Lorsqu'un chemin relatif est utilisé dans le code php, vous ne pouvez entrer que dans ce répertoire pour exécuter /usr/local/php/bin/php /var /www/cron/level_rank.php peut prendre effet. J'ai rencontré ce problème au moins deux fois, mais je ne m'en souviens toujours pas lorsque je le rencontrerai à nouveau.

La solution est la suivante :

Le code est le suivant :

*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php
Copier après la connexion

ou utilisez le chemin absolu dans le code php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal