Comment activer le module Swoole pour PHP dans ServBay
ServBay, en tant qu’environnement de développement web local performant, intègre de nombreux outils et extensions essentiels pour les développeurs, y compris l’extension PHP Swoole haute performance. Swoole est un moteur de communication réseau asynchrone, parallèle et hautement performant spécialement conçu pour PHP, permettant d’augmenter considérablement les performances et la scalabilité de vos applications PHP. Ce guide vous explique étape par étape comment activer facilement l’extension Swoole dans ServBay, afin de bénéficier de ses fonctionnalités avancées pour créer des applications et services PHP plus efficaces.
À propos du framework Swoole
Swoole est un projet open source qui apporte à PHP des fonctionnalités avancées comparables à Node.js : I/O asynchrone, coroutines, multi-processus, etc. Grâce à Swoole, les développeurs PHP peuvent s’affranchir du modèle traditionnel de synchronisation bloquante imposé par les serveurs web classiques (comme Apache/Nginx + PHP-FPM) pour bâtir des services en mémoire résidents hautes performances tels que :
- Passerelles API haute performance
- Applications de communication en temps réel (WebSocket)
- Serveurs de jeux
- Applications IoT (Internet des objets)
- Services back-end et gestion de tâches
Caractéristiques principales de Swoole
- Haute performance : Utilise des appels système comme epoll/kqueue pour un I/O asynchrone non bloquant, combiné à la gestion multithread/multiprocessus/coroutine, assurant un débit élevé et une faible latence.
- Asynchrone et coroutines : Offre la possibilité d’utiliser des coroutines, permettant d’écrire du code asynchrone de façon synchrone, ce qui améliore grandement l’efficacité de développement.
- Écosystème riche : Fournit des serveurs et clients HTTP, WebSocket, TCP, UDP, ainsi que des composants comme pools de connexions, timers ou gestion des processus.
- Facilité d’intégration : S’intègre aisément avec les frameworks PHP existants (Laravel, Symfony, ThinkPHP, etc.) ou permet de créer des applications natives Swoole.
Prise en charge du module Swoole dans ServBay
ServBay fournit l’extension Swoole préinstallée pour chaque version de PHP prise en charge. Il est donc inutile de la télécharger ou de la compiler séparément : ServBay gère automatiquement la correspondance entre les versions de PHP et l’extension Swoole compatible.
Actuellement, ServBay permet d’activer l’extension Swoole pour les versions PHP suivantes :
- PHP 5.6
- La série PHP 7.x
- La série PHP 8.x (y compris PHP 8.5)
ServBay sélectionne automatiquement la version adéquate de Swoole pour la version PHP choisie.
Prérequis
Avant d’activer le module Swoole, veuillez vous assurer que :
- Vous avez correctement installé et lancé ServBay.
- La version de PHP souhaitée pour utiliser Swoole est installée et sélectionnée dans ServBay.
Activer le module Swoole : étapes à suivre
ServBay propose deux méthodes : via l’interface graphique ou en modifiant les fichiers de configuration à la main. L’interface graphique est recommandée pour sa simplicité et son côté intuitif.
Activation via l’interface graphique ServBay (recommandé)
Voici comment activer le module Swoole en toute simplicité :
- Ouvrez l’interface graphique de ServBay.
- Dans le menu de navigation à gauche, sélectionnez Langages (Languages).
- Cliquez sur PHP.
- Dans la liste des versions PHP à droite, trouvez celle pour laquelle vous voulez activer Swoole (ex :
PHP 8.3
). Vérifiez qu’elle est sélectionnée (point vert). - Cliquez sur le bouton Extensions à droite de cette version PHP.
- Dans la liste des extensions, trouvez swoole.
- Activez l’extension swoole en basculant l’interrupteur à gauche (il doit devenir vert).
- Cliquez sur Enregistrer (Save) ou Appliquer (Apply) en bas de la fenêtre.
- ServBay vous demandera de redémarrer le service PHP pour prendre en compte l’extension. Cliquez sur Redémarrer (Restart).
Une fois le redémarrage terminé, le module Swoole est opérationnel !
Activation manuelle via le fichier de configuration (mode avancé)
Pour une configuration plus poussée, ou si vous préférez intervenir manuellement, il est possible d’activer Swoole en éditant le fichier .ini
de PHP.
Rendez-vous dans le dossier
conf.d
de la version PHP concernée. Ce dossier héberge les fichiers de configuration pour les extensions PHP ; ServBay charge automatiquement les fichiers.ini
présents. Par exemple, pour PHP 8.3, le chemin par défaut est :/Applications/ServBay/etc/php/8.3/conf.d/
1Attention, si vous avez personnalisé le chemin lors de l’installation de ServBay, adaptez en conséquence.
repérez et ouvrez le fichier
swoole.ini
dans ce dossier.Par défaut, la ligne d’activation de Swoole peut être commentée (symbolisée par
;
). Trouvez ce bloc :ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3Retirez le
;
devant la ligneextension = swoole.so
pour l’activer :ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3Sauvegardez le fichier
swoole.ini
.Dans l’interface principale de ServBay ou depuis le panneau de gestion des services, redémarrez le service PHP concerné.
Après redémarrage, le module Swoole sera chargé conformément à votre configuration.
Vérifier si le module Swoole est bien activé
Pour contrôler le bon chargement du module, la méthode la plus courante est d’utiliser la fonction phpinfo()
.
- Dans le dossier racine d’un site hébergé par ServBay (exemple :
/Applications/ServBay/www/servbay.demo/public/
), créez un fichier nomméphpinfo.php
. - Modifiez
phpinfo.php
pour y insérer :php<?php phpinfo(); ?>
1
2
3 - Assurez-vous que votre site
servbay.demo
pointe vers le dossier contenant ce fichier. - Dans votre navigateur, accédez à l’URL correspondante, par exemple
https://servbay.demo/phpinfo.php
. - Sur la page
phpinfo
, faites défiler ou utilisez la recherche du navigateur (Ctrl+F ou Cmd+F) pour rechercher le terme "swoole".
Si les informations relatives à Swoole (version, options de configuration, etc.) apparaissent, c’est que le module est bien chargé et activé.
Illustration : rechercher les informations Swoole dans la page phpinfo
Exemple d’utilisation de Swoole
Une fois Swoole activé, vous pouvez commencer à créer vos applications. Voici un exemple simple pour lancer un serveur HTTP Swoole basique.
Exemple de code : créer un serveur HTTP Swoole minimal
Créer le dossier projet
Dans votre espace de développement (exemple sous/Applications/ServBay/www/
), créez le répertoire projet, par exemplemy-swoole-app
puis, à l’intérieur, un dossierpublic
pour le fichier d’entrée.bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4Créer le fichier d’entrée du serveur
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // Si vous avez installé d’autres dépendances avec Composer use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // Crée une instance de serveur HTTP, à l’écoute sur toutes les IP locales (0.0.0.0) et le port 9501 $server = new Server("0.0.0.0", 9501); // Configuration optionnelle du serveur // $server->set([ // 'worker_num' => 4, // Nombre de workers // 'daemonize' => false, // Exécution en mode service // ]); // Écoute des requêtes $server->on("request", function (Request $request, Response $response) { // Définit l’en-tête de réponse $response->header("Content-Type", "text/plain"); // Définit le contenu de la réponse $response->end("Hello ServBay with Swoole!"); }); // (Optionnel) Surveiller le démarrage du serveur $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // Démarre le serveur $server->start(); echo "Swoole server stopped.\n"; // Cette ligne ne sera exécutée que lorsque le serveur sera arrêté
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35Remarque : la ligne
require __DIR__ . '/../vendor/autoload.php';
n’est nécessaire que si vous utilisez Composer pour installer des bibliothèques Swoole supplémentaires (commeswoole/ide-helper
ou un framework Swoole). Pour du code Swoole pure, vous pouvez la supprimer.Lancer le serveur depuis le terminal Ouvrez le terminal intégré à ServBay, ou le terminal système, et placez-vous dans le dossier de votre application (
/Applications/ServBay/www/my-swoole-app/
). Assurez-vous d’utiliser la version PHP gérée par ServBay (vérifiez avecwhich php
ou utilisez le terminal intégré de ServBay).Lancez la commande suivante pour démarrer le serveur Swoole :
shphp public/index.php
1Si tout est correct, vous devriez voir dans le terminal un message du genre "Swoole http server is started at http://0.0.0.0:9501".
Illustration : lancement du serveur Swoole dans le terminal
Vérifier le fonctionnement Ouvrez votre navigateur et allez sur
http://localhost:9501
. Vous devriez voir apparaître le message "Hello ServBay with Swoole!".Pour arrêter le serveur Swoole dans le terminal, faites
Ctrl + C
.
Points importants
- Mode d’exécution : L’exemple ci-dessus montre comment lancer un serveur Swoole en ligne de commande, idéal pour concevoir des services résidents en mémoire. Les applications web classiques (Laravel, Symfony, WordPress…) fonctionnent habituellement via PHP-FPM, pilotées par un proxy comme Caddy ou Nginx. Pour exécuter ces frameworks dans un environnement Swoole (Hyperf, Swoole-Laravel, etc.), utilisez les scripts de démarrage fournis qui fonctionnent souvent comme des processus autonomes, similaires à l’exemple Swoole natif présenté ici.
- Occupation de port : Le serveur Swoole écoute sur un port donné (9501 dans l’exemple). Veillez à ce que ce port ne soit pas occupé par un autre service.
- Logs d’erreur : Les messages et erreurs Swoole s’affichent habituellement directement dans le terminal de lancement, ou dans des fichiers logs selon la configuration.
Foire aux questions (FAQ)
Q : J’ai activé Swoole depuis l’interface de ServBay, mais je ne vois pas Swoole dans la page phpinfo()
. Que faire ?
R : Vérifiez les points suivants :
- Assurez-vous de consulter la page
phpinfo()
correspondant à la bonne version de PHP. ServBay pouvant faire tourner plusieurs versions PHP simultanément, il faut que votre site ou commande utilise bien celle où Swoole a été activé. - Vérifiez que vous avez bien enregistré les modifications et redémarré le service PHP dans l’interface ServBay.
- Si vous avez modifié à la main
swoole.ini
, vérifiez le chemin, le nom du fichier, et que la ligneextension = swoole.so
n’est plus commentée.
Q : En lançant l’exemple Swoole, j’obtiens l’erreur Class 'Swoole\Http\Server' not found
. Pourquoi ?
R : Cela indique que l’extension Swoole n’est pas chargée dans l’environnement PHP courant. Revoyez les étapes d’activation et assurez-vous que la commande php public/index.php
est exécutée avec la version PHP gérée par ServBay et Swoole activé. Pour un contrôle rapide : lancez dans le terminal php -m | grep swoole
et vérifiez que le module apparaît.
Conclusion
Avec ServBay, activer l’extension Swoole pour PHP est un jeu d’enfant. Que ce soit via une interface graphique conviviale ou une édition manuelle des fichiers de configuration, vous pouvez en quelques clics équiper la version PHP de votre choix avec Swoole et commencer à développer des applications web asynchrones à haute performance. Grâce à Swoole, vous concevez des services PHP plus réactifs et capables de gérer une forte concurrence, exploitant ainsi tout le potentiel de PHP moderne. ServBay offre un environnement de gestion pratique pour vous permettre de vous concentrer sur votre code, sans vous soucier des tracas de la configuration technique.