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
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.
No Comments