Extension PHP pour réaliser des services Windows

Par @jbnahan69

Aujourd'hui, je vais parler d'une extension PHP exclusivement réservée à Windows sur laquelle j'ai travaillé. Il s'agit de l'extension PECL win32service écrite à l'origine par Wez Furlong et maintenue jusqu'à maintenant par Richard Quadling. Cette extension permet d'exécuter un script PHP en tant que service windows et a été mise à jour pour toutes les versions de PHP 7 et de PHP 8. Elle est maintenant téléchargeable depuis le dépôt de code source GitHub (ou ce site pour PHP 8.2 et 8.3).

Dans la dernière version 1.0.2, quelques nouveautés ont été ajoutées par rapport à la version pour PHP 5. La plus importante est la possibilité de charger l'extension quelle que soit la façon d'utiliser PHP (ligne de commande, module apache, CGI, FastCGI). Si vous souhaitez retrouver le comportement de l'extension tel qu'il était en PHP 5, il faut utiliser la version 0.1.2 également disponible pour PHP 7.0 et 7.1 uniquement.

Voyons maintenant comment l'utiliser. Le Zip téléchargé depuis GitHub (ou ce site pour PHP 8.2 et 8.3) contient l'extension pour une version de PHP et pour toutes les variantes (x86/x64 et NTS/TS). Il contient également des scripts qui sont utilisés pour tester l'extension lors du développement.

La première chose à faire est d'installer l'extension adéquate dans le dossier "ext" de votre installation PHP.

Une fois la copie terminée, il est nécessaire de modifier le fichier de configuration "php.ini" pour que l'extension soit chargée.

Vérifier que cette valeur est correcte.

 

Vérifions maintenant que l'extension est bien chargée avec la commande php --ri win32service

Maintenant que l'extension est chargée, il est possible d'utiliser les scripts d'exemples présents dans le zip téléchargé. Pour les utiliser, ouvrez une fenêtre de ligne de commande en tant qu'administrateur et placez-vous dans le dossier des exemples.

Maintenant, installez le service de test avec la commande php.exe service.php create

Ouvrez le gestionnaire de service windows, le service "Windows service PHP test" est maintenant présent.

 

Vous pouvez le démarrer, l'arrêter et le désinstaller via la ligne de commande.

 

Le service dans le gestionnaire de service windows.

L'arrêt du service depuis la ligne de commande met à jour le gestionnaire de service Windows

La suppression du service peut se faire uniquement via la ligne de commande.

La documentation officielle présente sur le site de PHP est toujours valable.

Vous avez maintenant toutes les cartes en main pour réaliser de beaux services Windows avec PHP 8. Si un plantage intervient, il est possible de rapporter l'incident directement sur GitHub.

 

A lire également :

Author avatar
Jean-Baptiste Nahan

Consultant Expert Web, j'aide les entreprises ayant des difficultés avec leur projet Web (PHP, Symfony, Sylius).

@jbnahan69 | Macintoshplus | Linkedin | JB Dev Labs
Commentaires