Ioncube est un module PHP qui permet de travailler avec des scripts codés. Ces scripts sont du code fermé, en règle générale, il s'agit de systèmes commerciaux ou de modules payants. Dans ces scripts, en règle générale, une vérification de la validité de la licence est utilisée, et pour que personne ne supprime ce code de vérification et que le code source lui-même ne soit pas utilisé à des fins commerciales par d'autres, il est codé. Ce module PHP effectue le décodage, ce qui fait fonctionner ce type de script.
Pour chaque version de PHP, vous devez installer sa propre version du module.
1. Téléchargez la dernière version d'Ioncube
x64
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
x32
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
2. Installation
2.1 Déterminer la présence de versions php sur le serveur
ls /usr/bin/ | grep php
Dans notre cas, il y a 2 versions installées sur le serveur pour lesquelles nous allons configurer Ioncube.
2.2 Définir le dossier où se trouvent les modules php pour chaque version
php 7.3
/usr/bin/php7.3 -i | grep extension_dir
php 8.1
/usr/bin/php8.1 -i | grep extension_dir
2.3 Copier les modules de l'archive téléchargée
tar -xvf ioncube_loaders_lin_x86-64.tar.gz -C /var/tmp/
cp /var/tmp/ioncube/ioncube_loader_lin_7.3.so /usr/lib/php/20180731
cp /var/tmp/ioncube/ioncube_loader_lin_7.3_ts.so /usr/lib/php/20180731
cp /var/tmp/ioncube/ioncube_loader_lin_8.1.so /usr/lib/php/20210902
cp /var/tmp/ioncube/ioncube_loader_lin_8.1_ts.so /usr/lib/php/20210902
2.4 Ajouter des modules au fichier de configuration
2.4.1 Pour exécuter des scripts depuis la console (pour les tâches cron)
vim /etc/php/7.3/cli/php.ini
[Zend]
zend_extension=/usr/lib/php/20180731/ioncube_loader_lin_7.3.so
zend_extension_ts = /usr/lib/php/20180731/ioncube_loader_lin_7.3_ts.so
vim /etc/php/8.1/cli/php.ini
[Zend]
zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/lib/php/20210902/ioncube_loader_lin_8.1_ts.so
2.4.2 Pour le service web, dans notre exemple nous utilisons fpm
vim /etc/php/7.3/fpm/php.ini
[Zend]
zend_extension=/usr/lib/php/20180731/ioncube_loader_lin_7.3.so
zend_extension_ts = /usr/lib/php/20180731/ioncube_loader_lin_7.3_ts.so
vim /etc/php/8.1/fpm/php.ini
[Zend]
zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
zend_extension_ts = /usr/lib/php/20210902/ioncube_loader_lin_8.1_ts.so
Si vous utilisez Apache, ajoutez les mêmes lignes.
2.5 Enregistrez et appliquez les paramètres
Pour enregistrer les modifications apportées aux fichiers de configuration, utilisez la commande
:wq
Redémarrons les services Web
service php7.3-fpm restart
service php8.1-fpm restart
3. Vérifiez
php 7.3
/usr/bin/php7.3 -v
php 8.1
/usr/bin/php8.1 -v
C'est fait, les scripts encodés fonctionneront désormais correctement sur votre serveur.