2010-11-20 42 views
4

J'ai deux scripts php qui doivent être exécutés en tant que processus de fond continus dans le serveur WAMP.Exécution d'un script php en tant que processus d'arrière-plan dans le serveur Wamp

Le serveur Wamp est installé dans la fenêtre 7 PC. Ces scripts se trouvent déjà dans un dossier distinct du répertoire racine www.

Apache Version: 2.2.8
PHP Version: 5.2.6

Puisque ce n'est pas une plate-forme unix je ne peux pas utiliser commande nohup php script.php > /dev/null & pour faire ce travail. Je suis à la recherche d'un type de commande ou de méthode similaire qui fonctionne dans wamp server windows platform. Est-ce que quelqu'un peut expliquer les étapes que je dois prendre pour effectuer cette tâche?

+0

Ce n'est pas vraiment une question de programmation. –

+0

pensé que c'est l'endroit où je devrais poster ceci. Quoi qu'il en soit, j'apprécie vraiment toute aide ... –

Répondre

10
  1. créer un fichier batch pour exécuter votre script PHP en utilisant exécutable php "C: \ wamp \ php \ php.exe C: \ wamp \ www \ index.php"
  2. ajouter ce fichier batch dans une tâche planifiée dans le panneau de configuration de Windows.
+0

salut, merci. Je viens de créer deux fichiers bat comme vous l'avez dit et cela fonctionne. –

0

Vous pouvez utiliser "démarrer" avant de démarrer le script d'arrière-plan. Exemple:

créer cron.cmd avec

start /B php.exe "path to your script 1" 
start /B php.exe "path to your script 2" 

Vous pouvez montrer à l'homme sur la commande de démarrage:

  1. Win - R
  2. Type cmd
  3. Type help start
0

C'est ce que je l'ai fait:

  1. fichier PHP

    <?php my code goes here ?> 
    

    * Notez que si vous utilisez l'API HTTP/plissement CLI dl("php_curl.dll");

    cette charge enroulent en cli

  2. Maintenant, j'ai ajouté PHP à la variable de chemin de Windows, cela peut être fait ne de mon ordinateur, les propriétés, les paramètres avancés, variables d'environnement, nouvelle

  3. Ensuite, je crée un fichier .bat, il suffit d'ouvrir un bloc-notes & code de type ci-dessous et enregistrer en tant que myfile.bat

    @ECHO OFF 
    php -f d:\wamp\www\V3\task.php 
    

    This site pourrait vous aider sur la syntaxe du fichier .bat.

  4. Maintenant, créez une nouvelle tâche planifiée sur les fenêtres & appelez ce qui précède.fichier bat comme source,

+0

Veuillez ne pas poster la même réponse deux fois - votre réponse a eu un certain nombre de problèmes de formatage et d'orthographe. La duplication signifie que vous devez les corriger à deux endroits au lieu d'un seul. Vous pouvez toutefois marquer les questions comme des doublons exacts si elles le sont. – Flexo

8

Utilisez simplement cette fonction. Il fonctionne sous les deux systèmes d'exploitation (Windows et Linux):

function execInBackground($cmd){ 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
     pclose(popen("start /B ". $cmd, "r")); 
    }else{ 
     exec($cmd . " > /dev/null &"); 
    } 
} 

Voici un exemple simple de la façon d'utiliser la fonction:

execInBackground('php feed/handleFeed.php db_name '.$second_param); 

Dans l'exemple ci-dessus, nous commençons le script handleFeed.php que est situé dans le dossier nommé "nourrir" et nous passer 2 paramètres (nom de la base de données et un autre second paramètre).

+0

merci pour la réponse –