Skip to main content

Instalar ionCube en Laravel Herd en un mac Silicon

Introducción

Hace poco que abandone el desarrollo con Laravel Sail tras la aparición de Laravel Herd. Pero hoy me enfrente a un tema del que no había mucha documentación. Era la necesidad de instalar las extensiones de Ioncube para el desarrollo de un Addon de WHMCS en entorno local.

PHP e Ioncube en un Mac con chip Silicon M1/M2

Si escribo esto es porque a la fecha, 15/02/2024 el instalador de ionCube no funciona en el Mac.

Versión de PHP

WHMCS pese al año en que estamos sigue con soporte solo hasta PHP 8.1 y encima esta ofuscado con Ioncube, así que instale PHP 8.1 en Herd.

Mi primera sorpresa fue que no se instalaba nada o no encontraba el path por lo que opte por instalar el PHP 8.1 como hago siempre en mac, via Homebrew.

brew install php@8.1

Directorio de extensiones

Después saber donde esta el directorio de extensiones

php -i | grep extension_dir
extension_dir => /lib/php/extensions/no-debug-non-zts-20210902 => /lib/php/extensions/no-debug-non-zts-20210902
sqlite3.extension_dir => no value => no value

Ojo, esta información es relativa al PHP que se ejecuta en el shell, así que por favor, en Laravel Herd, deberemos poner como PHP global esa version, o en su defecto usar un phpinfo()en un documento visible en el public de nuestro proyecto, para ver el path para esa versión.

Descarga de Ioncube

Loaders

Elegimos macOS ARM M1 (arm64 64 bits) 13.0.2 que descargaremos y descomprimiremos.

Después debemos copiar o mover los ficheros de la extension a ese path.

sudo cp ioncube_loader_dar_8.1* /opt/homebrew/Cellar/php@8.1/8.1.27/lib/php/20210902/
sudo chown $(whoami):admin /opt/homebrew/Cellar/php@8.1/8.1.27/lib/php/20210902/ioncube_loader_dar_8.1*

Incorporar el modulo zend al php.ini

Desde Laravel Herd lo tenemos fácil.

Simplemente hay que ir al menu Show php.ini y seleccionar el php.ini de la versión que usamos.

Añadimos al final.

zend_extension=/opt/homebrew/Cellar/php@8.1/8.1.27/lib/php/20210902/ioncube_loader_dar_8.1.so

Salvamos el php.ini y reiniciamos Laravel Herd, y ya esta. Ya tenemos nuestra versión PHP 8.1 para FPM, preparada para ionCube.

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.