L'efficacité de la boucle infinie PHP pour gérer les tâches planifiées est très faible. Tout le monde recommande d'utiliser la commande crontab de tâches planifiées intégrée à Linux pour appeler le script PHP pour y parvenir. Cet article partage principalement avec vous un exemple d'implémentation de tâches planifiées utilisant PHP combiné avec la commande Linux cron. J'espère que cela pourra vous aider.
Deux méthodes pour les tâches planifiées PHP :
1. Appelez la page Web PHP via le Web, mais cela pose des problèmes de sécurité et les utilisateurs externes peuvent également appeler ce fichier.
*/1 * * * * /usr/bin/wget -q -O temp.txt http://wan.coolxap.cn/cron
2. Utilisez le mode php-cli pour appeler des scripts php. cli est un mode de ligne de commande pour exécuter des scripts php
<. 🎜>
* * * * * /usr/bin/php -f /root/test.php >> test.log
service crond restart
* * * * * /bin/date >> /tmp/date.txt * * * * * sleep 10; /bin/date >> /tmp/date.txt * * * * * sleep 20; /bin/date >> /tmp/date.txt * * * * * sleep 30; /bin/date >> /tmp/date.txt * * * * * sleep 40; /bin/date >> /tmp/date.txt * * * * * sleep 50; /bin/date >> /tmp/date.txt列举个真实场景:
*/1 * * * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/closeinvalidlive 0 0 27 * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/magicdistributed 0 0 26 * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/guildassessment 0 0 27 * * /usr/bin/wget --spider http://wan.coolxap.cn/cron/guildprizestatement
Lorsque la tâche planifiée ne fonctionne pas La tâche planifiée exécute le script php à l'intérieur.
Il s'avère qu'il ne peut pas être exécuté directement. Vous devez passer à l'utilisateur www pour exécuter le script php
Sinon, les opérations effectuées par le script sont effectuées avec les autorisations root. Par exemple, la création de répertoires de fichiers. et le téléchargement d'images appartiennent au groupe d'utilisateurs root.
Le problème directement causé est que les utilisateurs de la page Web ne peuvent pas utiliser le répertoire en raison d'autorisations insuffisantes. Par exemple, dans le répertoire créé par root, les utilisateurs Web ne peuvent pas télécharger d'images dans ce répertoire.
La solution est la suivante :
Passer en utilisateur www pour exécuter la commandesu www "-c cd /alidata/www/wwwroot/17xap/e/caidiscuz/ && /aliyun/webserver/php5.2.17/bin/php pushnews2.php -9 -u"
Lors de l'utilisation de l'interface pour accéder à un certain fichier php, j'ai constaté que le téléchargement de l'image échouait, ce qui indiquait que les autorisations étaient insuffisantes et que l'opération de stockage de l'image ne pouvait pas être effectuée dans le répertoire.
Vérifiez ensuite que les autorisations du répertoire sont wr-wr-wr 0666, qui prend théoriquement en charge la lecture et l'écriture du répertoire. Mais pourquoi ne puis-je pas télécharger d’images ?
Car sans autorisations x, vous ne pouvez exécuter aucune commande dans ce répertoire, y compris mkdir, ls, etc. La création d'images nécessite non seulement l'autorisation w mais également l'autorisation x.
Après avoir modifié l'autorisation en wrx-r-xr-x 0755, l'image peut être téléchargée normalement.
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!