Gestion des versions PHP dans ServBay : Guide de configuration pour la ligne de commande et les sites web
ServBay est un puissant outil d’environnement de développement web local, conçu spécifiquement pour macOS, et compatible avec de nombreux langages de programmation et bases de données. Ce guide détaille la manière de gérer de façon flexible différentes versions de PHP dans ServBay, que ce soit pour exécuter des scripts via la ligne de commande ou pour servir des sites web spécifiques. Maîtriser la gestion des versions PHP dans ServBay vous permettra d’accroître votre efficacité, tout en assurant l’isolation et la stabilité des environnements de vos projets.
1. Environnement ligne de commande : gérer la version de PHP par projet avec .servbay.config
En créant un fichier de configuration .servbay.config
à la racine de votre projet, vous pouvez spécifier une version de PHP indépendante pour chaque projet. ServBay détecte automatiquement le PHP approprié selon le répertoire courant de votre terminal, assurant ainsi l’isolation des versions entre projets et évitant tout conflit de configuration global.
1.1 Rôle et fonctionnement de .servbay.config
- Contrôle de version au niveau projet : ServBay permet d’installer et d’exécuter simultanément plusieurs versions de PHP, du 5.6 jusqu’aux versions les plus récentes et même en développement. En utilisant
.servbay.config
, vous pouvez indiquer précisément pour chaque projet la version de PHP souhaitée. - Commutation transparente : En utilisant la commande
cd
pour accéder à un dossier projet contenant un fichier.servbay.config
, ServBay détecte ce fichier et ajuste temporairement les variables d’environnement de la session du terminal (notammentPATH
). Ainsi, les commandesphp
,composer
, etc., pointeront vers la version de PHP spécifiée. Lorsque vous quittez ce dossier, l’environnement revient à la configuration globale par défaut de ServBay, sans impacter votre système.
1.2 Méthode de configuration
Créez un fichier nommé .servbay.config
à la racine de votre projet, puis ajoutez le contenu suivant pour définir la version PHP à utiliser :
bash
# Spécifiez la version PHP à utiliser pour ce projet (exemple : PHP 8.3)
PHP_VERSION=8.3
# Si votre projet nécessite également une version particulière de Node.js, précisez-la (exemple : Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
- La valeur de
PHP_VERSION
doit correspondre à un identifiant de version PHP installé dans ServBay, généralement constitué du numéro majeur ou majeur+mineur (ex :7.4
,8.1
,8.3
,8.5
, etc.). Assurez-vous d’avoir installé et activé la version souhaitée dans ServBay. - La configuration de
NODE_VERSION
fonctionne de la même façon pour gérer la version de Node.js à utiliser dans le projet courant.
Vérification de la prise en compte :
Dans un terminal positionné dans le répertoire contenant .servbay.config
, exécutez les commandes suivantes pour vérifier la version activée :
bash
$ pwd # Vérifiez que vous êtes à la racine du projet
$ php -v # Le résultat doit indiquer la version PHP configurée (par ex. : PHP 8.3.x)
$ composer install # La résolution et l’installation des dépendances s’effectuent avec la version active de PHP
1
2
3
2
3
Si après modification de .servbay.config
la version n’a pas changé, essayez de fermer/réouvrir votre terminal ou exécutez la commande cd .
pour forcer ServBay à recharger la configuration.
1.3 Points d’attention et astuces avancées
- Compatibilité des versions : Si vous rencontrez des erreurs du type "Class not found" ou "Call to undefined function" lors de l’exécution de commandes projet, vérifiez d’abord la compatibilité des dépendances (par exemple dans
composer.json
) avec la version PHP spécifiée. Certains anciens projets peuvent dépendre de fonctionnalités ou extensions supprimées dans les versions récentes (par exemple, l’extensionmcrypt
a été retirée en PHP 7.2). - Valeur par défaut globale : Si aucun fichier
.servbay.config
n’est trouvé dans le répertoire courant ni ses parents, ServBay utilise la version PHP globale définie dans la section « Paramètres » de son interface graphique. - Gestion multi-runtimes :
.servbay.config
ne gère pas uniquement PHP, mais peut aussi spécifier la version de Node.js à utiliser (NODE_VERSION
), particulièrement utile quand un projet utilise PHP pour le backend et Node.js pour des outils frontend (Webpack, Vite, etc.).
1.4 Exemple d’utilisation
Voici une démonstration du changement automatique de version PHP selon le dossier projet via .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 site web : gestion des versions PHP via l’interface graphique de ServBay
L’interface graphique de ServBay offre une méthode simple et intuitive pour attribuer une version PHP distincte à chaque site. L’environnement PHP d’un site web est indépendant de celui de la ligne de commande, vous permettant un choix parfaitement adapté aux besoins spécifiques de chaque projet.
2.1 Procédure 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 de navigation à gauche.
- Ajouter ou modifier un site :
- Cliquez sur le bouton + en bas à gauche pour ajouter une nouvelle configuration de site.
- Sélectionnez un site existant pour modifier ses paramètres.
- Configurer les propriétés du site :
- Répertoire racine : Indiquez le dossier où se trouvent les fichiers de votre site. Il est recommandé d’utiliser un sous-dossier de
/Applications/ServBay/www/
, par exemple/Applications/ServBay/www/nom-du-site/public
(pour des frameworks comme Laravel ou Symfony). - Domaine : Définissez le nom de domaine local pour accéder à votre site, par exemple
nom-du-site.servbay.demo
. ServBay configure automatiquement la résolution DNS locale et les certificats HTTPS (via ServBay User CA ou ServBay Public CA), facilitant ainsi le développement et les tests. - Version PHP : Sélectionnez la version PHP souhaitée dans la liste déroulante. ServBay propose toutes les versions de PHP installées et activées (7.4, 8.1, 8.3, 8.5, etc.).
- Répertoire racine : Indiquez le dossier où se trouvent les fichiers de votre site. Il est recommandé d’utiliser un sous-dossier de
- Enregistrer la configuration : Après avoir terminé les réglages, cliquez sur enregistrer. ServBay appliquera automatiquement les modifications, ce qui peut entraîner le rechargement ou le redémarrage des services web ou PHP-FPM concernés.
2.2 Détails techniques & avantages
- Isolation des services : ServBay exécute la version PHP sélectionnée pour chaque site dans un pool de processus PHP-FPM distinct, garantissant un environnement PHP totalement isolé entre les sites. Un dysfonctionnement ou une fuite mémoire sur un site n’influencera pas les autres.
- Optimisation des performances : Les paquets logiciels ServBay, y compris les différentes versions de PHP, sont optimisés à la fois pour ARM64 (Apple Silicon) et X86_64, assurant d’excellentes performances sur tous types de matériels.
- Débogage facilité :
- Accédez aux logs d’erreurs PHP : Les erreurs sont généralement consignées dans
/Applications/ServBay/var/log/php/php_error.log
. - Contrôlez l’état des processus PHP-FPM via l’outil en ligne de commande fourni :
servbayctl
. Par exemple :servbayctl status php 8.3
.
- Accédez aux logs d’erreurs PHP : Les erreurs sont généralement consignées dans
2.3 Intégration avec serveurs web et bases de données
ServBay offre une grande flexibilité et vous permet de choisir le serveur web et la base de données les mieux adaptés à vos projets :
- Support serveurs web : Depuis la version 1.7.0, il est possible de passer d’un serveur web à l’autre (Apache, Nginx, Caddy). Chacun d’eux s’interface automatiquement avec les processus PHP-FPM gérés par ServBay.
- Gestion des bases de données : ServBay prend en charge l’installation et la gestion de plusieurs versions de MySQL, MariaDB, PostgreSQL, MongoDB et Redis. Vous pouvez lier ces services à vos sites web via la configuration graphique ou les paramètres de connexion dans votre code, ce qui facilite le développement de projets nécessitant des bases de données spécifiques (par exemple Laravel avec MariaDB 11.x).
3. Collaboration multi-environnements & bonnes pratiques
Comprendre l’indépendance entre la configuration PHP de la ligne de commande et celle des sites web vous aidera à choisir la meilleure approche selon vos scénarios de développement :
Cas d’usage | Config. CLI (.servbay.config ) | Config. site web (ServBay GUI) | Remarque |
---|---|---|---|
Maintenance d’un héritage | PHP_VERSION=5.6 dans le projet | PHP 5.6 pour le site web | Vérifiez que toutes les extensions requises sont installées. |
Développement d’un nouveau projet (ex : Laravel 11) | PHP_VERSION=8.3 (ou supérieur), éventuellement NODE_VERSION=20 | Nouveau site pointant sur le public du projet, PHP 8.3+, domaine local et HTTPS | Assurez la cohérence entre outils en ligne de commande et web. |
Tests sur les futures versions PHP | PHP_VERSION=8.5 dans le projet test | Site de test avec PHP 8.5 | Utile pour vérifier la compatibilité avec de nouvelles versions. |
Exécution de commandes Composer | .servbay.config doit pointer vers la bonne version PHP | N/A (Composer s’utilise en CLI) | Composer utilisera la version PHP active dans le terminal. |
Points d'attention
- Différences CLI vs environnement Web : Même en utilisant le même numéro de version PHP, la configuration (php.ini) et les extensions chargées peuvent différer entre le mode CLI et le service web (PHP-FPM). Par exemple, l’extension
opcache
est généralement activée sous PHP-FPM pour optimiser les performances, mais désactivée par défaut en CLI. En cas de comportement divergent, consultez le fichierphp.ini
correspondant à la version PHP active (chaque version a son propre fichier dans ServBay) ainsi que la liste des extensions chargées. - Mise à jour de ServBay Runtime : Veillez à garder votre application ServBay et son runtime à jour. L’équipe développe en continu de nouveaux paquets, versions PHP et correctifs de sécurité. Mettre à jour ServBay met aussi à jour le runtime afin de bénéficier des dernières améliorations.
Foire aux questions (FAQ)
Q : Que faire en cas de conflit de version PHP entre la ligne de commande et l’environnement web ?
R : Les environnements ligne de commande (contrôlés par .servbay.config
) et site web (gérés via l’interface ServBay) sont totalement indépendants. .servbay.config
détermine la version de PHP utilisée dans la session terminal, tandis que la configuration du site définit celle utilisée par le serveur web (Apache/Nginx/Caddy via PHP-FPM). Il n’y a donc pas de conflit. Il est possible d’utiliser une version différente en CLI (ex : pour Composer ou Artisan) et une autre pour le web, mais il est conseillé, pour la cohérence entre développement et production, de garder la même version des deux côtés.
Conclusion
Grâce au fichier .servbay.config
et à son interface graphique conviviale, ServBay offre aux développeurs une gestion flexible et puissante des versions PHP. Que vous mainteniez un projet nécessitant un ancien PHP ou que vous développiez une nouvelle application avec les dernières versions, ServBay vous facilite la vie. Prendre avantage de ces fonctionnalités permet de rapprocher votre environnement de développement local de la production, d’optimiser votre efficacité et d’assurer la stabilité de vos projets.