Comment charger des extensions PHP tierces dans ServBay
ServBay est livré avec des modules d'extension PHP courants, que les utilisateurs peuvent configurer et activer dans langue
- version PHP
- extensions
de ServBay.
Cependant, il arrive parfois que les utilisateurs aient besoin de charger des modules qui ne sont pas inclus avec ServBay. Cet article décrira comment procéder.
ServBay permet aux utilisateurs de charger des extensions tierces de manière flexible pour leur environnement PHP géré. Ce document prendra ionCube Loader comme exemple pour vous guider tout au long du processus. Ce processus est également utile pour charger d'autres extensions Zend ou des extensions PHP compilées par l'utilisateur (fichiers .so
).
Remarque : ionCube Loader est une extension Zend, donc pour la configuration, il faut utiliser l'instruction zend_extension
au lieu de extension
.
Prérequis
- Vous avez installé et exécuté ServBay.
- Vous avez des droits d'administrateur pour accéder aux fichiers système et à l'interface de configuration de ServBay.
- Vous êtes familiarisé avec l'utilisation de l'application terminal (Terminal) sous macOS.
Remarque
ServBay fournit des paquets PHP avec des architectures natives pour les puces Intel et Silicon (M1/M2/M3/M4). Lorsque vous chargez des fichiers .so
, assurez-vous que la structure de compilation du fichier .so
que vous chargez correspond à celle du paquet ServBay.
Les fichiers de différentes architectures ne peuvent pas être mélangés, une incohérence d'architecture provoquera un crash de PHP.
- Déterminez l'architecture du paquet PHP inclus avec ServBay :
file /Applications/ServBay/package/php/8.3/current/bin/php
Les informations affichées ressemblent à ceci :
php: Mach-O 64-bit executable arm64 # Architecture Silicon Arm64
php: Mach-O 64-bit executable x86_64 # Architecture Intel x86
2
- Déterminez l'architecture du fichier
.so
à installer :
file xdebug.so
Les informations affichées ressemblent à ceci :
xdebug.so: Mach-O 64-bit bundle arm64 # Architecture Silicon Arm64
xdebug.so: Mach-O 64-bit bundle x86_64 # Architecture Intel x86
2
Étapes d'opération
Étape 1 : Télécharger ionCube Loader
- Accédez à la page de téléchargement officielle d'ionCube Loader. Pour macOS ARM64 (puces Apple Silicon de la série M), téléchargez la version Darwin ARM64. Vous pouvez utiliser le lien suivant (veuillez vérifier s'il existe une version mise à jour) : https://downloads.ioncube.com/loader_downloads/ioncube_loaders_dar_arm64.tar.gz
- Une fois le téléchargement terminé, vous obtiendrez un fichier compressé
.tar.gz
, par exempleioncube_loaders_dar_arm64.tar.gz
.
Étape 2 : Déterminer la version PHP cible et le répertoire d'extension
Ouvrez l'application ServBay.
Dans la barre de navigation de gauche, cliquez sur Languages.
Dans la liste de droite, trouvez la version PHP pour laquelle vous souhaitez installer ionCube Loader (par exemple, ici il s'agit de PHP 8.3). Notez ce numéro de version.
Les extensions PHP de ServBay sont généralement stockées dans un chemin spécifique. Selon la structure d'installation standard de ServBay et l'exemple d'écran, le répertoire des extensions PHP 8.3 pourrait ressembler à :
/Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
/Applications/ServBay/package/php/
est le chemin de base du paquet PHP de ServBay.8.3/
est le répertoire de la version principale.8.3.16/
est le répertoire de la version PHP spécifique (ajustez en fonction de la version que vous avez réellement installée).lib/php/extensions/
est le répertoire parent des extensions.no-debug-non-zts-xxxxxxxx/
est le répertoire de la version API spécifique et des options de compilation (ce nom de répertoire variera avec la version de PHP).
Important : Vous devez déterminer ou trouver ce chemin exact en fonction de la version PHP réellement installée et de l'architecture sur votre ServBay. Vous pouvez également utiliser une commande terminal pour le rechercher (assurez-vous d'utiliser le chemin PHP géré par ServBay) :
bash/Applications/ServBay/package/php/8.3/current/bin/php -i | grep extension_dir
1Remplacez
/Applications/ServBay/package/php/8.3/current/bin/php
par le chemin d'exécutable réel de votre version PHP cible. La sortie de la commande afficheraextension_dir => /path/to/extension/directory
.
Étape 3 : Extraire et placer les fichiers du Loader
- Ouvrez l'application terminal (Terminal).
- Utilisez la commande
cd
pour entrer dans le répertoire où vous avez téléchargé le fichier.tar.gz
(généralement le répertoireDownloads
).bashcd ~/Downloads
1 - Décompressez le fichier téléchargé :bashCela créera un répertoire nommé
tar -zxvf ioncube_loaders_dar_arm64.tar.gz
1ioncube
. - Entrez dans le répertoire
ioncube
:bashcd ioncube
1 - Dans ce répertoire, vous verrez des fichiers
.so
correspondant à différentes versions de PHP, par exempleioncube_loader_dar_8.3.so
. Trouvez le fichier correspondant à votre version PHP cible (celle déterminée à l'étape 2, par exemple 8.3). - Copiez ce fichier
.so
correspondant dans le répertoire d'extension PHP que vous avez déterminé à l'étape 2. Supposons que le répertoire cible soit le chemin d'exemple précédent et que vous souhaitiez installer le Loader pour PHP 8.3 :bashcp ioncube_loader_dar_8.3.so /Applications/ServBay/package/php/8.3/8.3.16/lib/php/extensions/no-debug-non-zts-20230831/
1- Veillez à remplacer le chemin cible par le chemin réel du répertoire d'extensions pour votre version PHP.
- Assurez-vous de copier le fichier
.so
qui correspond exactement à la version PHP.
Étape 4 : Configurer PHP dans ServBay
Retournez à l'interface de l'application ServBay.
Assurez-vous que Languages est sélectionné à gauche, puis cliquez sur la version PHP que vous souhaitez configurer (par exemple PHP 8.3).
Dans la zone de configuration développée à droite, cliquez sur l'onglet PHP (comme indiqué par la flèche 1 sur l'image ci-dessous).
Faites défiler vers le bas pour trouver le champ Additional Parameters (Paramètres supplémentaires).
Dans ce champ, ajoutez la ligne suivante (comme indiqué par la flèche 2 sur l'image ci-dessous), en spécifiant le chemin relatif du fichier ionCube Loader :
inizend_extension = ioncube_loader_dar_8.3.so
1- Rappel : Le fichier
.so
doit être strictement placé dans le cheminextension_dir
obtenu à l'étape 3. Vérifiez soigneusement. - Utilisez
zend_extension
au lieu deextension
, car ionCube Loader est une extension Zend. - Si d'autres configurations figurent déjà dans ce champ, ajoutez cette directive sur une nouvelle ligne.
- Rappel : Le fichier
Cliquez sur le bouton Save en bas à droite pour enregistrer la configuration.
Étape 5 : Redémarrer le service PHP
Après avoir cliqué sur le bouton de sauvegarde, ServBay a automatiquement redémarré le service PHP.
Étape 6 : Vérifier si le chargement a réussi
Vous pouvez vérifier si ionCube Loader a été chargé avec succès de deux manières :
Via la ligne de commande :
Ouvrez le terminal.
Exécutez la commande suivante (assurez-vous d'utiliser le chemin complet de la version PHP cible) :
bash/Applications/ServBay/package/php/8.3/current/bin/php -m | grep -i ioncube
1Si le chargement a réussi, vous devriez voir une sortie similaire à
ionCube Loader
.Vous pouvez également exécuter
php -v
pour voir les informations sur la version. En général, lorsque ionCube est chargé, des informations connexes apparaissent :bash/Applications/ServBay/package/php/8.3/current/bin/php -v
1Exemple de sortie :
PHP 8.3.16 (cli) (built: Jan 31 2025 15:09:39) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.16, Copyright (c) Zend Technologies with the ionCube PHP Loader v14.4.0, Copyright (c) 2002-2024, by ionCube Ltd.
1
2
3
4
Via phpinfo() :
- Créez un fichier PHP contenant
<?php phpinfo(); ?>
(par exempleinfo.php
) et placez-le dans le répertoire racine de votre site web. - Accédez à ce fichier via un navigateur (par exemple
http://your-local-site.test/info.php
). - Dans la page de sortie
phpinfo()
, recherchez "ionCube". Si le chargement a réussi, vous verrez une section d'informations dédiée à ionCube Loader, affichant sa version et d'autres détails.
- Créez un fichier PHP contenant
Résumé
En suivant ces étapes, vous devriez pouvoir charger avec succès ionCube Loader ou d'autres extensions PHP tierces pour la version PHP spécifique gérée par ServBay. L'essentiel est de trouver le bon fichier d'extension, de déterminer le bon répertoire d'extensions PHP, et d'ajouter la directive correcte dans la configuration de ServBay (zend_extension
ou extension
). Si vous rencontrez des problèmes, vérifiez attentivement les chemins, les permissions de fichiers et assurez-vous d'avoir redémarré le service PHP.