Gestion des versions PHP dans ServBay : Guide de configuration pour la ligne de commande et l’environnement Web
ServBay est un outil puissant d’environnement de développement Web local compatible macOS et Windows, prenant en charge de nombreux langages et bases de données. Ce guide explore en détail comment gérer avec souplesse les différentes versions de PHP pour chaque projet sur ServBay, que ce soit pour exécuter des scripts en ligne de commande ou pour servir des sites Web spécifiques. Maîtriser le système de gestion des versions PHP de ServBay vous permet d’augmenter votre efficacité de développement tout en assurant l’isolation et la stabilité de vos environnements projet.
1. Environnement en ligne de commande : Gérer la version PHP par projet avec .servbay.config
En plaçant un fichier de configuration .servbay.config à la racine du projet, chaque développeur peut définir une version PHP CLI distincte par projet. ServBay détecte automatiquement le répertoire courant dans le terminal et charge ainsi l’environnement PHP correspondant, ce qui évite les conflits globaux et garantit l’isolation des versions.
1. Fonctionnement et principes de .servbay.config
- Contrôle de la version par projet : ServBay permet d’installer et d’exécuter simultanément plusieurs versions de PHP, de PHP 5.6 jusqu’aux dernières versions stables et de développement. Grâce au fichier
.servbay.config, vous pouvez spécifier exactement la version PHP nécessaire pour chaque projet. - Basculement non-intrusif : Lorsqu’on navigue dans un dossier contenant
.servbay.configavec la commandecddans le terminal, ServBay détecte ce fichier et modifie temporairement les variables d’environnement de la session courante (principalementPATH). Les commandes telles quephpetcomposerutiliseront alors les exécutables PHP de la version spécifiée. Une fois hors du répertoire, l’environnement revient à la configuration globale par défaut de ServBay, sans effet secondaire sur le système.
2. Procédure de configuration
Créez un fichier nommé .servbay.config à la racine de votre projet, puis ajoutez-y par exemple :
bash
# Définir la version de PHP à utiliser pour ce projet (exemple : PHP 8.3)
PHP_VERSION=8.3
# Si votre projet nécessite aussi une version spécifique de Node.js (exemple : Node.js 20)
# NODE_VERSION=201
2
3
4
5
2
3
4
5
- La valeur de
PHP_VERSIONdoit correspondre à une version de PHP déjà installée et activée dans ServBay, généralement sous la forme du numéro principal ou principal.secondaire (7.4,8.1,8.3,8.5, etc.). - La variable
NODE_VERSIONfonctionne de la même manière pour indiquer la version de Node.js désirée.
Pour vérifier si cela fonctionne :
Ouvrez un terminal dans le dossier du projet contenant .servbay.config et vérifiez avec :
bash
$ pwd # Vérifier que vous êtes bien à la racine du projet
$ php -v # Vérifier que la version affichée de PHP correspond à celle configurée (exemple : PHP 8.3.x)
$ composer install # Les dépendances seront installées avec la version de PHP activée1
2
3
2
3
Si, après modification de .servbay.config, la version ne change pas, essayez de fermer/réouvrir le terminal ou utilisez la commande cd . pour forcer le rechargement de la configuration par ServBay.
3. Bonnes pratiques et astuces avancées
- Compatibilité des versions : En cas d’erreur type "Class not found" ou "Call to undefined function", vérifiez la plage de version PHP requise dans les dépendances du projet (
composer.json) et assurez-vous que la version spécifiée dans.servbay.configest compatible. Certains anciens projets peuvent dépendre de fonctionnalités ou extensions retirées dans les nouvelles versions de PHP (comme l’extensionmcryptretirée depuis PHP 7.2). - Valeur globale par défaut : Si aucun fichier
.servbay.confign’est présent dans le dossier courant ou ses parents, ServBay utilisera la version PHP globale par défaut sélectionnée dans l’interface graphique. - Gestion multi-services :
.servbay.configpermet aussi de gérer la version de Node.js viaNODE_VERSION, très utile pour les projets utilisant PHP en back-end et Node.js pour le front (Webpack, Vite, etc.).
4. Exemple d’utilisation
Voici une démonstration de basculement automatique de la version PHP selon le dossier projet grâce à .servbay.config :
Légende : Dans ServBay, en naviguant dans des dossiers comportant différents fichiers .servbay.config et en exécutant php -v, le terminal bascule automatiquement vers la version de PHP spécifiée.
2. Environnement Web : Gérer la version PHP via l’interface graphique ServBay
ServBay propose une interface graphique intuitive pour définir une version PHP distincte par site web. Les versions PHP des sites web sont indépendantes des versions CLI, ce qui vous laisse une grande flexibilité selon les besoins de chaque projet.
1. Étapes de configuration
- Ouvrir l’interface ServBay : Lancez l’application ServBay.
- Accéder à la gestion des sites : Cliquez sur l’onglet Sites web (Websites) dans la barre latérale de l’interface principale.
- Ajouter ou modifier un site :
- Cliquez sur le bouton + en bas à gauche pour ajouter une nouvelle configuration de site.
- Editer la configuration d’un site existant au besoin.
- Définir les paramètres du site :
- Répertoire racine : Indiquez le chemin des fichiers du site. Il est recommandé d’utiliser un sous-dossier dans le répertoire par défaut de ServBay
/Applications/ServBay/www/, par exemple/Applications/ServBay/www/nom-de-votre-site/public(typique pour Laravel ou Symfony). - Domaine : Définissez le nom de domaine local pour accéder au site, ex :
nom-de-votre-site.servbay.demo. ServBay configure automatiquement la résolution DNS locale et le certificat HTTPS (via ServBay User CA ou ServBay Public CA), ce qui facilite le développement et les tests. - Version PHP : Sélectionnez la version PHP souhaitée dans le menu déroulant. ServBay liste toutes les versions installées et activées (7.4, 8.1, 8.3, 8.5, etc.).
- Répertoire racine : Indiquez le chemin des fichiers du site. Il est recommandé d’utiliser un sous-dossier dans le répertoire par défaut de ServBay
- Enregistrer la configuration : Cliquez sur Enregistrer. ServBay appliquera les changements automatiquement, il se peut que le serveur Web ou le processus PHP-FPM doive être redémarré.
2. Détails techniques et avantages
- Isolation des services : Chaque site fonctionne généralement avec son propre pool PHP-FPM pour la version PHP choisie, assurant une isolation complète entre les environnements PHP de chaque site. Une erreur ou fuite de mémoire sur un site n’affectera pas les autres.
- Optimisation des performances : Les packages ServBay, y compris les différentes versions de PHP, sont optimisés pour les architectures ARM64 (Apple Silicon) et X86_64 afin de garantir les meilleures performances sur tout type de machine.
- Débogage :
- Logs d’erreur PHP : Les erreurs PHP des sites sont enregistrées dans le fichier
/Applications/ServBay/var/log/php/php_error.log. - Vérification du statut PHP-FPM : Utilisez la commande
servbayctlpour vérifier l’état d’une version PHP spécifique, par exempleservbayctl status php 8.3.
- Logs d’erreur PHP : Les erreurs PHP des sites sont enregistrées dans le fichier
3. Intégration serveur web et base de données
ServBay offre une très grande flexibilité pour le choix des serveurs web et des bases de données selon le projet :
- Serveurs web supportés : Depuis ServBay 1.7.0 et plus, il est possible de basculer facilement le serveur web du site entre Apache, Nginx et Caddy, entièrement intégrés avec la gestion PHP-FPM de ServBay.
- Intégration base de données : ServBay prend en charge l’installation et la gestion de plusieurs versions de MySQL, MariaDB, PostgreSQL, MongoDB, Redis, etc. Vous pouvez connecter votre site ou code projet à une instance de base de données ServBay spécifique, selon les exigences (ex : certains projets Laravel recommandent MariaDB 11.x).
3. Collaboration inter-environnements et bonnes pratiques
Comprendre l’indépendance entre la gestion des versions PHP en ligne de commande et celle de l’environnement web permet de faire les meilleurs choix selon le contexte de développement :
| Usage | Configuration CLI (.servbay.config) | Configuration Web (GUI ServBay) | Remarques |
|---|---|---|---|
| Maintenance d’un système legacy | Définir PHP_VERSION=5.6 à la racine du projet | Sélectionner PHP 5.6 dans la configuration du site | Vérifiez que toutes les extensions et la version requises sont installées. |
| Développement d’un nouveau projet (ex. Laravel 11) | Définir PHP_VERSION=8.3 (ou supérieur), éventuellement NODE_VERSION=20 | Ajouter un site, racine = dossier public, PHP >= 8.3, domaine dev + HTTPS | Harmoniser les versions CLI (Composer, Artisan, outils Node) et Web. |
| Test de futures versions PHP | Définir PHP_VERSION=8.5 dans le dossier projet test | Ajouter un site de test, sélectionner PHP 8.5 | Pour tester la compatibilité anticipée aux nouvelles versions PHP. |
| Exécution de Composer | S’assurer que .servbay.config définit la bonne version PHP | N/A (Composer = CLI principalement) | Composer utilise la version PHP activée dans le terminal actuel. |
Points importants
- Différences CLI vs Web : Même avec un même numéro de version PHP, les réglages par défaut et modules chargés peuvent varier entre l’environnement CLI et le serveur web (PHP-FPM). Par exemple, l’extension
opcacheest généralement activée en PHP-FPM pour accélérer le site, alors qu’elle est souvent désactivée en CLI. Si des différences de comportement apparaissent, vérifiez les fichiersphp.iniassociés à chaque version dans ServBay, ainsi que les modules effectivement chargés. - Gardez ServBay à jour : Assurez-vous de maintenir ServBay et ses "Runtime" à jour : les nouvelles versions et patchs de sécurité PHP sont régulièrement intégrés par l’équipe ServBay. La mise à jour de ServBay met à niveau automatiquement son Runtime pour bénéficier des dernières améliorations.
FAQ – Foire Aux Questions
Q : Que faire en cas de conflit de version PHP entre ligne de commande et Web ?
R : Les environnements ligne de commande (contrôlables via .servbay.config) et Web (via l’interface ServBay) sont totalement indépendants. .servbay.config n’affecte que la session du terminal pour des commandes comme php, tandis que la configuration du site détermine la version PHP utilisée par le serveur web (Apache/Nginx/Caddy) via PHP-FPM. Il n’y a donc pas de conflit direct. Il est possible d’utiliser une version PHP en CLI (par exemple pour Composer ou Artisan) et une autre pour servir le site web ; toutefois, il vaut mieux garder la même version dans les deux environnements pour assurer la cohérence et éviter d’éventuels problèmes en production.
Conclusion
ServBay, grâce au fichier .servbay.config et à son interface graphique intuitive, offre aux développeurs une gestion puissante et flexible des versions PHP. Que vous deviez maintenir des projets anciens nécessitant une version PHP obsolète ou développer de nouveaux projets sur la dernière version, ServBay facilite votre travail. Exploiter ces fonctionnalités garantit un environnement de développement local proche du contexte de production, tout en augmentant votre productivité et la stabilité de vos projets.
