2010-04-19 11 views
0

est-il un moyen d'ajouter un script PHP (fichier) dans cron pour exécuter ce script toutes les dix minutes ou à une heure planifiée? Parce que je veux que l'utilisateur puisse planifier quand envoyer un bulletin d'information à beaucoup d'emails qu'il choisit. Je dois donc créer un travail cron à partir de php pour exécuter un fichier php à cette heure programmée.ajouter un script php dans cron pour une tâche planifiée à partir de PHP?

est-ce possible si vous avez un environnement d'hébergement web partagé (non vps)

Répondre

2

Si vous nom du fichier script news.php et dans la ligne de crontab /home/user/news.php semble être comme:

* * * * * php /home/user/news.php 

Si vous ne voulez pas courir ce dans chaque minute. Vous pouvez modifier * avec de gauche (m, h, dom, mon, dow)

Mais vous ne pouvez pas faire cela si seulement vous avez même l'hébergement web, vous devez avoir accès au shell ou d'une autre façon de configurer votre fichier crobtab (peut-être à partir du panneau d'accès du fournisseur)

Mais vous pouvez exécuter sur d'autres emplois crontab serveur pour exécuter votre news.php par le apache sur le protocole http. Dans cette option, votre travail crontab sur le serveur distant doit exécuter votre script sur le Web. Par exemple. wget est une bonne option pour elle:

* * * * * wget http://www.yourdomain.com/dir/news.php 
+0

excellente solution! –

+0

alors quelle est ma solution n'est pas acceptée? ;-) – Svisstack

1

Mon conseil est ne le font pas permettent un script PHP appelé par Apache pour modifier le Cron. Cela a un désastre écrit partout. Normalement, cron est configuré pour exiger une permutation des racines. Cela peut être changé mais le fait est que si votre site est piraté, donner à un attaquant la possibilité de modifier votre cron pourrait être vraiment très mauvais.

Plus précisément, ce n'est pas nécessaire. Tout ce que vous faites est de choisir une granularité, disons chaque minute ou 5 minutes ou 10 minutes. Vous dites aux utilisateurs qu'ils peuvent le programmer jusqu'à ce niveau. Donnez-leur des options de chaque mois à toutes les 5 minutes. Quoi qu'ils choisissent, écrivez-le dans la base de données.

Ensuite, exécutez un script PHP différent toutes les 1, 5 ou 10 minutes (quelle que soit la granularité minimale) et regardez la base de données pour voir s'il y a quelque chose à exécuter, à faire ou à envoyer.

+0

Vous pouvez éditer crontable par l'utilisateur, mais chaque utilisateur a self crontable indépendant. – Svisstack

+0

@Swisstack oui mais c'est un utilisateur pour l'ensemble de votre application Web (typiquement "personne" sur Linux). – cletus

1

Yup C'est possible mais sur un hébergement partagé, cela affectera votre site ainsi que d'autres sites sur cet hôte. Donc, si votre fichier n'est pas appelé souvent par cron, alors il est correct de mettre cron sur un hôte partagé, mais si vous devez l'appeler souvent alors ce n'est pas conseillé, vous pouvez aussi être jeté par votre fournisseur car personne veut que le site soit sous-performant à cause d'un autre site web.

Questions connexes