Bonjour, WAMP 2.4 Windows XP Pro 32 bits (SP3) Apache 2.4.4 PHP 5.4.16 MySql 5.6.12
Icône verte.
Est-il possible de faire une requête à ma base de données au moment de la mise en route de wampserver et/ou à la fermeture ? Y a-t-il un fichier déjà prévu pour ça ?
Modifie 1 fois. Derniere modification le 05/05/2014 à 13:43 par DMike92.
Oui, pas de problèmes : 1) Je souhaite indiquer dans mes tables que tous les utilisateurs sont déconnectés : - Soit au moment du démarrage - Soit à l’extinction du serveur J'aurais donc besoin d'effectuer une requête à l'un de ces 2 moments (l'un ou l'autre).
Mais ceci amène une autre question (du même ordre) : 2) Y a-t-il moyen de démarrer un programme en même temps que le démarrage de Wamp ? Ceci afin d'avoir un programme de surveillance qui me dit "Untel vient de se connecter" (à moins que ce ne soit déjà prévu _ à part par mail).
Lors du démarrage de Wampmanager, le script include/refresh.php est systématiquement exécuté, mais on ne peut pas ajouter une demande de connexion à la base de données car, même à la fin du script, ça ne peut pas fonctionner. En revanche, on peut, à la fin du fichier include/refresh.php, mettre une instruction php "error_log" pour aller écrire dans le fichier de log PHP. On peut également écrire dans un fichier spécifique par fopen(..), fwrite(...) et fclose(...).
Lors de l'arrêt de Wampmanager, il n'est exécuté que les demandes d'arrêt des deux services, donc, pas de possibilité d'ajout d'écriture dans un fichier.
Pour démarrer un autre programme avec Wampmanager, il suffit de mettre les appels dans un fichier batch et de lancer ledit batch.
Il faut faire une distinction entre WampManager qui n'est rien d'autre que l'icône dans la barre des tâches et les services "wampapache" & "wampmysqld".
Les services démarrent et s'arrêtent indépendamment de l'icône Wamp, car c'est le système d'exploitation Windows qui les gère. Par l'icône Wamp, on ne fait que lancers des ordres au système d'exploitation.
Dans la version de base de WampManager, il n'existe pas de scripts qui s'exécutent après le démarrage des services ou avant l'arrêt des services.
Si les scripts sont associés à la manipulation au travers de WampManager, oui, on peut modifier le fichier WampManager.ini au travers du fichier refresh.php. Mais on rencontre un problème lorsque le système d'exploitation arrête ou redémarre les services indépendamment de WampManager (de l'icône).
A cause du décalage entre Windows et WampManager, je déconseille de faire un script automatique. Le mieux est de faire un script que l'on lance manuellement, juste avant l'arrêt des services, ou après le démarrage des services.
Bonjour, Merci à tous les 2. C'est ce que j'ai fait (un script en vbs). J'ai quand même réussi à modifier wampmanager.tpl pour y ajouter un nouveau menu me permettant de consulter le log de mon site (écrit par divers fichiers php). C'est du plus bel effet :-)
================ [Resolu] ================
Modifie 1 fois. Derniere modification le 08/05/2014 à 22:44 par DMike92.
Je reviens sur ce sujet afin qu'il puisse être plus complet :
Comment, depuis un script Windows (ou une ligne de commande) demander l'exécution d'un script php ? Si je l'ouvre, il est associé à mon éditeur de texte (peut-être n'était-ce pas le cas au début) mais maintenant comment dois-je faire ?
Le fichier wamp/wampmanager.ini est plein d'appels PHP en ligne de commande (CLI) (Attention, dans ce cas, ce sont les paramètres de wamp/bin/php/php5.x.y/php.ini qui sont pris en compte) Bien sûr, il faut que PHP soit actif, donc soit Wampserver lancé, soit les services wampapache et wampmysqld démarrés.
Exemple : J:/wamp/bin/php/php5.5.12/php-win.exe";Parameters: "refresh.php";WorkingDir: "J:/wamp/scripts";
Cela veut dire que l'on va lancer php-win.exe pour exécuter le script refresh.php qui se trouve dans J:/wamp/scripts.
En ligne de commande Windows, cela se traduira par :
Une très bonne documentation : Utiliser PHP en ligne de commande Il faut « un certain temps » pour apprendre à utiliser PHP en ligne de commande, il y a de nombreuses options. Il faut aussi voir comment on peut passer des paramètres au script appelé et comment ledit script les récupère. Beaucoup de scripts Wampserver, comme wamp\scripts\switchPhpExt.php, sont des bons exemples d'exécution en ligne de commande avec passage de paramètres.
A la fin de refresh.php, j'ai ajouté un include 'my_refresh.php'; mais : Impossible de le faire en automatique : impossible de se connecter à la base. "L'ordinateur l'a expressément refusé" ! Même en ajoutant un sleep(5), l'icône met 5 secondes de plus à devenir verte ce qui ne solutionne pas mon problème.
- Soit il faut que je démarre un autre script sans en attendre le fin d'exécution qui, lui, attendra 5 secondes avant de lancer la requête (déconnexion de tous les utilisateurs du forum) - Soit je créé une ligne supplémentaire dans le menu Wampmanager qui appellera cette requête sur un clic ! - Soit j'utilise la fonction : J:/wamp/bin/php/php5.5.12/php-win.exe J:/wamp/scripts/refresh.php (adaptée) depuis le script de démarrage (avec un bon sleep avant)
D'autres idées ?
Modifie 1 fois. Derniere modification le 08/05/2014 à 22:46 par DMike92.
J'ai aussi trouvé comment lancer un script au démarrage et à la fermeture de Wamp dans ce wampmanager.tpl :-) Au démarrage modifier la section [StartupAction] ;WAMPSTARTUPACTIONSTART Action: run; FileName: "${c_phpCli}";Parameters: "refresh.php"; WorkingDir: "${c_installDir}/scripts"; Flags: waituntilterminated en ajoutant : Action: run; FileName: "${c_phpCli}";Parameters: "my_start.php";WorkingDir: "${c_installDir}";
Pour la fermeture, modifier : [myexit] ;WAMPMYEXITSTART Action: service; Service: wampapache; ServiceAction: stop; Flags: ignoreerrors Action: service; Service: wampmysqld; ServiceAction: stop; Flags: ignoreerrors ; la ligne suivante a été ajoutée Action: run; FileName: "${c_phpCli}"; Parameters: "my_exit.php";WorkingDir: "${c_installDir}"; Action: exit ;WAMPMYEXITEND
en placant les scripts dans c:/wamp. Si on fait du log, comme moi, il peut être utile d'avoir la bonne heure grâce à date_default_timezone_set que je place dans mes scripts.
Merci de ce retour d'expérience. Bien que j'utilise et modifie wampserver.tpl pour des besoins personnels ou d'essais, je n’avais pas pensé aux sections [StartupAction] et [myexit].