web-dev-qa-db-fra.com

Exécuter le travail Cron sur PHP Script, sur localhost sous Windows

J'ai un script php et je veux l'exécuter selon un planning. J'utilise un serveur Web local sur Windows (serveur WAMP) et j'ai besoin d'un moyen d'exécuter my_script.php toutes les 10 min .

Comment exécuter un travail cron sur un script PHP, sur localhost dans Windows?

15
Trix

récemment, j’ai eu des problèmes pour exécuter un travail cron sur un script php sur localhost (serveur WAMP) sous Windows 7, alors que j’étais sur un test pour récupérer de façon chronique des liens sur www. 

En passant, je partage cela pour quiconque est sur la même chose. 

Vous aurez besoin d’un shellscript pour s’exécuter de manière chronique à l’aide de Planificateur de tâches Windows . Aussi, vous aurez besoin d’un script batch ( script.bat ) pour appeler le php.exe et exécuter votre script php (ici appelé my_process.php).

shellscript.vbs

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\path\to\script\script.bat" & Chr(34), 0
Set WinScriptHost = Nothing

script.bat

"C:\wamp\bin\php\php5.4.12\php.exe" -f "C:\wamp\www\website\my_process.php"

Nous sommes maintenant prêts à configurer le planificateur de tâches de Windows pour qu'il exécute shellscript.vbs à l'intervalle de temps requis:

  1. Ouvrir Planificateur de tâches à partir de Windows Démarrer menu
  2. Allez dans Action menu et appuyez sur Create Task ...
  3. dans l'onglet Général, remplissez les champs Nom et Description que vous voulez
  4. dans l'onglet Triggers, appuyez sur le bouton Nouveau .
  5. depuis Commencer la tâche dans le menu déroulant, sélectionnez Sur une planification et choisissez Tous les jours
  6. dans la section Paramètres avancés, sélectionnez Répétez la tâche à chaque fois comme vous le souhaitez et définissez pour une durée sur Indéfiniment .
  7. dans l'onglet Actions, dans le menu déroulant Action, sélectionnez Démarrer un programme .
  8. dans la zone Program\script, entrez le chemin d'accès à shellscript.vbs, comme C:\chemin\à\shellscript.vbs .
  9. laissez Ajouter des arguments (facultatif) section vide.
  10. dans la zone Démarrer dans (facultatif), entrez le répertoire parent de shellscript.vbs comme C:\path\to\.
  11. Hit upvote sur ce tutoriel :) Amusez-vous.
39
Trix

Si vous utilisez answer de Trix et obtenez le même problème que Metafaniel :

J'ai un problème avec cette procédure, la tâche est en cours d'exécution, Cependant, mon script php ne fonctionne pas, j'ai le "Ouvrir avec" dialogue. Si je vois les propriétés de ma tâche, cela indique: NomAction C:\Windows\system32\OpenWith.exe même si je le configure dans le fichier vbs en tant que vous avez suggéré. Qu'est-ce que je fais mal?

vous devriez utiliser ceci:

  1. Au lieu de cela, "entrez le chemin d'accès à shellscript.vbs comme C:\chemin\à\shellscript.vbs." utilisez "C:\Windows\System32\wscript.exe"
  2. Au lieu de cela, "laissez la section Add de argumentts (facultatif) vide", utilisez (avec guillemets): "C:\chemin\to\shellscript.vbs"
1
DimaX

Pour configurer une machine Windows afin d’exécuter cron.php à une heure précise, suivez les instructions spécifiques ci-dessous. Cela peut être utile si vous n'êtes pas familier avec Linux/Unix ou si votre hébergeur Web ne vous permet pas d'exécuter des tâches cron. vous pouvez les exécuter à distance à partir de votre propre ordinateur.

Remarque: Ces instructions ont été écrites pour Windows XP mais devraient être similaires dans les autres versions de Windows.

https://www.drupal.org/node/31506

1
Ravi Chauhan