Compiler et installer des modules PHP personnalisés dans ServBay (macOS)
ServBay est un environnement local puissant, conçu spécialement pour macOS, qui intègre de nombreux packages afin de répondre aux besoins des développeurs Web modernes. Outre PHP, il inclut Node.js, Python, Go, Java, des bases de données (MySQL, PostgreSQL, MongoDB), des systèmes de cache (Redis) et des serveurs Web (Caddy, Nginx, Apache), avec une prise en charge multiversion pour chaque technologie. Cela vous permet d’adapter facilement votre environnement à chaque projet.
Bien que ServBay contienne déjà la majorité des modules PHP couramment utilisés, certains scénarios peuvent requérir la compilation et l’installation de modules supplémentaires pour étendre les capacités de PHP ou intégrer des services tiers spécifiques.
Ce guide vous explique pas à pas comment compiler et installer vos propres modules pour une version précise de PHP sous ServBay. Nous prendrons comme exemples l’extension graphique populaire imagick
et le pilote de base de données Microsoft SQL Server sqlsrv
, en détaillant tout le processus pour vous aider à enrichir votre environnement PHP ServBay.
Prérequis
Remarque importante
Avant toute compilation de module PHP, il est essentiel d’initialiser correctement l’environnement de compilation de ServBay et de bien positionner les variables d’environnement, conformément à la documentation officielle. Cette étape est le fondement de toute compilation de packages ServBay (y compris les modules PHP) : si vous la négligez ou la réalisez incorrectement, la compilation échouera probablement avec des erreurs de commandes, bibliothèques ou fichiers d’en-tête introuvables.
Le script d’initialisation de l’environnement de ServBay positionne des variables telles que PATH
(pointant vers les outils de ServBay), SERVBAY_PACKAGE_FULL_PATH
(racine des packages) et CPU_NUMBER
(compilation en parallèle). Ces variables sont indispensables à la compilation.
Pour tous les détails relatifs à cette initialisation, consultez impérativement le guide Recompiler avec ServBay et assurez-vous d’avoir strictement respecté toutes les instructions.
Avant de poursuivre, vérifiez que l’initialisation de l’environnement de compilation ServBay est faite avec succès et que les variables requises sont en place dans votre session terminal actuelle.
L’importance de spécifier la version PHP
Un des atouts majeurs de ServBay est la gestion simultanée de plusieurs versions de PHP sur un même système. Cela facilite le travail sur plusieurs projets ayant chacun leurs spécificités. Cependant, pour compiler un module PHP, il est impératif de cibler la version PHP adéquate. Les outils essentiels phpize
et php-config
sont intimement liés à chaque version de PHP.
phpize
: prépare l'environnement pour la compilation d’extensions PHP, en générant le scriptconfigure
à partir du fichierconfig.m4
.php-config
: fournit à la compilation des détails sur l'installation de la version PHP précise (drapeaux du compilateur, dossiers des includes et des extensions).
Il est donc crucial d’utiliser le chemin complet de ces outils associés à la version PHP cible. Par exemple, pour PHP 8.3 installé via ServBay, utilisez /Applications/ServBay/package/php/8.3/current/bin/phpize
et /Applications/ServBay/package/php/8.3/current/bin/php-config
. C’est la garantie que le module compilé sera bien compatible avec l’environnement PHP visé et préviendra les erreurs de compilation et d’exécution.
Tous les exemples de ce guide partent de PHP 8.3 sur ServBay. Lors de vos manipulations, remplacez systématiquement les chemins par ceux correspondant à la version PHP réellement utilisée dans votre ServBay.
Compiler l’extension PHP imagick
L’extension imagick
offre à PHP de puissants outils de traitement d’images via la bibliothèque ImageMagick. Elle permet la mise à l’échelle, la découpe, la conversion de formats, l’ajout de filigranes, la composition, etc. Voici comment la compiler et l’installer sous ServBay pour une version PHP donnée :
Étape 1 : Installer les bibliothèques ImageMagick
L’extension imagick
dépend de la présence des librairies ImageMagick sur le système. Sous macOS, il est conseillé d’utiliser Homebrew. Si Homebrew n’est pas installé, rendez-vous sur le site officiel Homebrew pour l’installer.
Ouvrez un terminal et lancez :
brew install imagemagick
Étape 2 : Télécharger le code source de imagick
Téléchargez la dernière version stable du module imagick
depuis le site officiel PECL : page PECL imagick. Choisissez la version désirée (par exemple, ici 3.7.0
) puis exécutez :
wget https://pecl.php.net/get/imagick-3.7.0.tgz
Étape 3 : Extraire le code source et se placer dans le dossier
Décompressez l’archive et entrez dans le dossier du module :
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
2
Étape 4 : Préparer l’environnement de compilation (phpize)
Dans le répertoire source, utilisez phpize
de la version PHP cible. Supposons ici PHP 8.3 et que la variable d’environnement SERVBAY_PACKAGE_FULL_PATH
est positionnée :
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
Si l’opération est réussie, le script configure
et les fichiers requis sont générés, signalant que l’environnement est prêt.
Étape 5 : Configurer les options de compilation
Lancez le script configure
en précisant via --with-php-config
le chemin vers le bon php-config
:
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
Le script va chercher les dépendances, générer le Makefile nécessaire à la compilation, et vérifier la configuration. Si une erreur survient, répartissez-vous sur l’installation des dépendances.
Étape 6 : Compiler et installer le module
Le Makefile généré, compilez puis installez le module avec :
make -j ${CPU_NUMBER}
make install
2
La commande make install
va placer le fichier imagick.so
dans le dossier d’extensions du PHP cible (un chemin comme /Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/
).
Étape 7 : Activer le module
Une fois compilé, activez le module dans ServBay :
- Ouvrez l’application ServBay
- Dans le menu à gauche, allez dans
Langages
→PHP
→PHP 8.3
- À droite, sélectionnez l’onglet
PHP
, descendez, trouvez les “Paramètres supplémentaires” et ajoutezextension=imagick.so
- Cliquez sur
Sauvegarder
pour redémarrer automatiquement PHP et prendre en compte votre module
Étape 8 : Vérifier le chargement du module
Après activation, redémarrez le service PHP sous ServBay. Ceci peut se faire via l’interface graphique ou en ligne de commande selon les outils ServBay (voir documentation pour la commande exacte).
Ensuite, vérifiez que le module est chargé :
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
Cela affichera imagick
si le module est présent. Autre vérification plus détaillée : créez un fichier (ex. info.php
) dans votre dossier web (par défaut /Applications/ServBay/www
) avec le contenu <?php phpinfo(); ?>
, puis visitez-le dans votre navigateur (http://localhost/info.php
). Cherchez « imagick » sur la page pour confirmer son activation, les infos de version et configuration.
Compiler les modules PHP sqlsrv/pdo_sqlsrv
Les modules sqlsrv
et pdo_sqlsrv
permettent à PHP de se connecter et d’interagir avec Microsoft SQL Server via le pilote ODBC fourni par Microsoft. Ces modules ne sont pas fournis par défaut dans ServBay ; vous devez les compiler et les installer si besoin.
Attention : prérequis indispensables
Sous macOS, l’installation des pilotes ODBC SQL Server (msodbcsql18
) et des outils (mssql-tools18
) de Microsoft est obligatoire avant tout essai de compilation de sqlsrv
. Ils doivent être installés en utilisant Homebrew. Si ce n’est pas encore fait, installez Homebrew depuis le site officiel.
Les commandes pour installer les pilotes et outils Microsoft via Homebrew sont les suivantes. Notez que vous devrez accepter la licence (variable HOMEBREW_ACCEPT_EULA=Y
) :
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
2
3
Assurez-vous que cela est bien en place avant de compiler tout module sqlsrv. Les fichiers seront installés dans /opt/homebrew/
(Mac Apple Silicon) ou /usr/local/
(Mac Intel). Les chemins devront être correctement pointés lors de la compilation.
Conseil
sqlsrv
et pdo_sqlsrv
sont deux extensions distinctes à compiler séparément, selon un processus quasi identique. Exemple ci-dessous pour sqlsrv
.
Étape 1 : Installer les pilotes et outils ODBC Microsoft
(Référez-vous à l'étape précédente et assurez-vous que Homebrew a bien installé msodbcsql18
et mssql-tools18
.)
Étape 2 : Télécharger le code source de sqlsrv
Rendez-vous sur la page PECL sqlsrv pour télécharger le module (ici version 5.12.0
) :
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz # sqlsrv
wget https://pecl.php.net/get/pdo_sqlsrv-5.12.0.tgz # pdo_sqlsrv
2
Étape 3 : Extraire le code source et se placer dans le dossier
Après téléchargement, décompressez puis positionnez-vous dans le dossier source :
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# Même processus pour pdo_sqlsrv
2
3
4
Étape 4 : Préparer l’environnement de compilation (phpize)
Dans le répertoire source, utilisez le phpize
lié à la version PHP cible, par ex. PHP 8.3 :
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
Étape 5 : Configurer la compilation (inclure les dépendances)
Lancez le script configure
. Comme le module dépend des librairies ODBC installées via Homebrew, il est essentiel d’indiquer à la compilation où trouver les headers et librairies via LDFLAGS
et CPPFLAGS
.
Selon le type de Mac (Apple Silicon : /opt/homebrew
, Intel : /usr/local
), ajustez les chemins suivants. Exemple pour Homebrew dans /opt/homebrew
:
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}"
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
2
3
LDFLAGS
: ajoute les chemins pour la recherche des librairies lien dynamiqueCPPFLAGS
: ajoute les chemins vers les fichiers d’en-tête nécessaires au préprocesseur C/C++${CPPFLAGS}
et${LDFLAGS}
: respectent d’éventuels réglages déjà positionnés par ServBay
Étape 6 : Compiler et installer le module
Compilez et installez comme précédemment :
make -j ${CPU_NUMBER}
make install
2
Cette opération déploie sqlsrv.so
(et, si fait, pdo_sqlsrv.so
) dans le dossier d’extensions PHP correspondant.
Étape 7 : Activer le module
Activez le module sous ServBay :
- Ouvrez ServBay
- Allez dans
Langages
>PHP
>PHP 8.3
- Dans les “Paramètres supplémentaires”, ajoutez
extension=sqlsrv.so
etextension=pdo_sqlsrv.so
- Cliquez sur
Sauvegarder
. PHP sera relancé avec les nouveaux modules activés.
Étape 8 : Vérifier le chargement du module
Après activation, redémarrez absolument le service PHP dans ServBay.
Vérifiez la présence du module avec :
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep sqlsrv
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep pdo_sqlsrv
2
Si tout est en place, chaque commande affichera le nom du module correspondant. Vous pouvez également valider via phpinfo()
.
FAQ — Problèmes courants
- Q : « Cannot find autoconf » ou erreur similaire lors de la compilation ?
- R : Cela trahit quasi systématiquement une initialisation incomplète de l’environnement ServBay. Reprenez la section “Prérequis” du début et suivez bien le guide Recompiler avec ServBay. Vérifiez que tous les outils nécessaires (autoconf, automake, libtool, etc.) sont accessibles via les variables d’environnement. Lancer le script d’initialisation et redémarrer le terminal suffisent souvent à régler ce souci.
- Q : Échec du script
configure
(librairie ou header non trouvé) ?- R : Cela signifie qu’une dépendance système n’est pas installée ou non trouvée.
- Pour
imagick
: vérifiez d’avoir bien installé ImageMagick avec ses librairies de développement (brew install imagemagick
). - Pour
sqlsrv
: assurez-vous via Homebrew d’avoir installé Microsoft ODBC driver (msodbcsql18
) et les outils associés. Contrôlez queLDFLAGS
etCPPFLAGS
pointent bien vers/opt/homebrew/lib
et/opt/homebrew/opt/unixodbc/include
. - Adaptez, si besoin, votre variable d’environnement PATH pour inclure le dossier des binaires Homebrew dans la configuration ServBay.
- Pour
- R : Cela signifie qu’une dépendance système n’est pas installée ou non trouvée.
- Q :
make
oumake install
échoue ?- R : Plusieurs causes possibles :
- Dépendances manquantes : consultez l’erreur affichée et installez le composant concerné.
- Erreur de configuration : revérifiez les arguments passés à
configure
(en particulier--with-php-config
). - Problème de permission : si l’installation tente d’écrire dans des dossiers protégés, essayez (avec précaution)
sudo make install
. - Corruption du code source : retéléchargez l’archive PECL concernée.
- R : Plusieurs causes possibles :
- Q : Le fichier
.so
est bien présent dans le dossier extensions et référencé dans le.ini
, mais le module n’apparaît pas dansphp -m
ouphpinfo()
?- R :
- Cause principale : Le service PHP ServBay n’a pas été redémarré. Redémarrez impérativement le package PHP cible via l’interface ou ligne de commande ServBay. Recharger la page web ou simplement redémarrer le serveur Caddy/Nginx n’est pas suffisant.
- Vérification de syntaxe de votre fichier
.ini
(orthographe, formatextension=modulename.so
). - Contrôlez l’option
extension_dir
dansphp.ini
: elle doit pointer sur le bon dossier d’extensions PHP ServBay (vérifiez le chemin viaphp-config --extension-dir
). - Risque d’incompatibilité ou corruption du module : refaites la compilation et assurez-vous de la compatibilité des versions. Enfin, inspectez les logs PHP (dans le dossier logs de ServBay) à la recherche d’erreurs de chargement spécifiques.
- R :
Conclusion
En suivant scrupuleusement les étapes détaillées dans ce guide, vous serez en mesure de compiler et d’installer des extensions PHP personnalisées (telles qu’imagick
ou sqlsrv
) sous votre environnement de développement ServBay sur macOS. Les points clés à retenir :
- Initialisez correctement l’environnement de compilation ServBay : incontournable pour éviter les échecs ultérieurs.
- Utilisez toujours le chemin complet de la version PHP cible pour lancer
phpize
etphp-config
. - Assurez-vous d’installer toutes les dépendances externes nécessaires (ImageMagick, pilotes ODBC Microsoft, etc.) et indiquez leurs chemins à la compilation via les variables d’environnement comme
LDFLAGS
etCPPFLAGS
. - Activez les modules correctement dans le dossier
conf.d
de la version PHP concernée grâce à l’instructionextension=modulename.so
. - Redémarrez le package PHP dans ServBay pour que les modifications soient prises en compte.
ServBay offre ainsi une flexibilité inégalée pour vos développements : non seulement la compilation de modules PHP mais aussi la gestion de MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust et bien d’autres. Parmi ses fonctionnalités avancées : obtention de certificats SSL réels via ACME, configuration CORS simplifiée, sauvegarde automatique (sites, bases, SSL), réinitialisation du mot de passe ‘root’ des bases, gestion des CA internes pour le HTTPS local, etc., font de ServBay une solution puissante et fiable.
Nous espérons que ce guide vous aidera à étendre facilement les fonctionnalités de PHP dans ServBay et à optimiser votre développement Web. Pour tout problème complémentaire, référez-vous à la documentation ou à la communauté ServBay.