[LARAVEL] [MacOS] Instalar Mcrypt en MacOs Yosemite para implementar Laravel

  Laravel, MacOs

¡Aupa!

La mejor forma de empezar a enredar con Laravel, es hacerlo primero en local. Hasta hace muy poco con mis conocimientos, lo primero que hacía en cualquiera de mis equipos Mac, era instalar MAMP que ya viene con todo.

El tema es que si tienes un VPS con CentOS por ejemplo…, pues si necesitas instalar alguna extensión de php, pues no dejas de jugártela haciendolo por primera vez siguiéndo algún post que encuentres googleando.

Asi que si tienes una Mac, te olvidas del Mamp…, y te pasas a modo PRO 😉

Punto y aparte…

Hay un montón de caminos para conseguirlo, pero yo os voy a contar el que he usado y me ha funcionado sin problemas.

Lo primero, Yosemite viene con la versión:

PHP Version 5.5.14

pero…, para que funcione Laravel, es necesaria la extensión mcrypt.

Tras hacer muchos experimentos, conseguí hacerlo funcionar usando el php de MAMP (que ya la trae por defecto), cambiando un montón de historias.

El tema fue, que me cansé de hacer experimentos, y me centré. ¿Porqué no instalarla en el Apache del propio MacOS?

Así encontré una web que explica como hacerlo, de forma clara y concisa. Click aquí para ir a la web donde lo explica.

Si en inglés se te resiste, o simplemente hay algún momento en el que te bloqueas, allá voy con la lenguar de Cervantes.

 

Lo primero y mas importante, para no marearse, es instalar el Xcode desde la App Store (la de aplicaciones para Apple, no en iTunes xdxdxd). Al instalarlo se instalan una serie de paquetes que nos vendrán bien, tanto para esta acción como para otras relacionadas con el Apache.

Nota: En el enlace en el que se base este artículo, lo anterior se corresponde con:

—————–

Command Line Tools

First up you will need the OSX 10.10 version of Command Line Tools which you can download via the Apple available updates in the App store.

Run in the Terminal

xcode-select --install

—————–

Sigamos pues…

Abrimos el Terminal de Mac, desde Aplicaciones/Utilidades/Terminal.app

Por defecto, el Terminal debería posicionarse en

/Users/tuUsuario

pero por si acaso…, hacemos los siguientes comandos en el terminal:

cd ~
mkdir mcrypt 
cd mcrypt

Nos posiciona en la carpeta por defecto de nuestro usuario -> crea carpeta mcrypt -> nos mete dentro de la carpeta.

Descargamos desde nuestro navegador favorito la librería Mcrypt en cuestión. Click para descargar.

Descargamos la versión de Php que se corresponde, con la que tenemos instalada. Si es la 5.5.14, click aquí y elegimos Mirror, sino buscamos la que tengamos, haciendo click aquí.

Desde un Finder, copiamos ambos ficheros: Librería Mcrypt y versión PHP, a la carpeta:

/Users/tuUsuario/mcrypt

Sino controlas de comandos, descomprimes los ficheros con UnrarX o similar…, si te quieres meter en el rollo:

tar -zxvf libmcrypt-2.5.8.tar.gz
tar -zxvf php-5.5.14.tar.gz (cambiarla en función de tu versión de php)
rm *.gz

Con ambos ficheros ya descomprimidos, nos metemos en la carpeta:

cd libmcrypt-2.5.8

E instalamos la librería. Para lo que como cualquier paquete RPM en Centos, tenemos que configurarlo, mezclarlo, agitarlo y compilarlo 😉 Vamos con tres comandos listo.

./configure
make
sudo make install

Ya tenemos lista la librería, ahora tenemos que preparala para implementarla en el PHP.

Para ello usaremos AutoConf. Que sería algo asi como la coctelera encargada de preparar el coctel con la librería para PHP 😉

Nota: Si has seguido bien los pasos, para saber donde estás desde Terminal, puedes usar entre tantos el comando:

pwd

que te dirá que estás en:

/Users/tuUsuario/mcrypt/libmcrypt-2.5.8

para volver a la carpeta mcrypt, pues con un:

cd ..

Ya estarías en la carpeta oportuna. Entonces, te bajas AutoConf, lo configuras, preparas y compilas, con los siguientes comandos:

cd ~/mcrypt (sería lo mismo que hacer el cd .. si estuvieras en la carpeta oportuna, si ya estás donde debes, no hace falta usar este comando)
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar xvfz autoconf-latest.tar.gz
cd autoconf-2.69/
./configure
make
sudo make install

Una vez listo el Autoconf, volvemos a la carpeta inicial mcrypt con:

cd.. (o como acabamos de aprender --> con: cd ~/mcrypt)
cd php-5.5.14/ext/mcrypt/ (cambiar la versión si la vuestra no es la 5.5.14)
/usr/bin/phpize

o bien:

cd ../php-5.5.14/ext/mcrypt/ (cambiar la versión si la vuestra no es la 5.5.14)
/usr/bin/phpize

El resultado al último comando será algo asi como:

Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212

Y volvemos a agitar, mezclar y compilar:

./configure
make
sudo make install

Dando como resultado:

Installing shared extensions:  /usr/lib/php/extensions/no-debug-non-zts-20121212/

Ya nos falta lo más fácil ;-). Decirle al Php que use esta extensión que acabamos de mezclar y agitar ;-).

Tenemos que editar el fichero:

/etc/php.ini

Sino existe el fichero php.ini, reutilizamos el php.ini.default:

sudo cp /etc/php.ini.default /etc/php.ini
sudo chmod u+w  /etc/php.ini

Si existe, tenemos que editarlo, dándole permisos para modificarlo previamente:

sudo chmod u+w  /etc/php.ini

Puedes usar el vi o el nano, para hacerlo:

sudo nano /etc/php.ini

or

sudo vi /etc/php.ini

Una vez editado el archivo, añades en la última línea:

extension=mcrypt.so

guardas los cambios, y reinicias el Apache:

sudo apachectl restart

Haces un info.php, y buscas la extensión mcrypt, que debería estar ya enabled. Sino fuera así, prueba a cerrar el terminal y volverlo abrir.. No es un windows, pero a veces funciona, incluso en un macOS 😉

Greetings to coolestguidesontheplanet.com for your article that make this possible in Spanish

Si has llegado hasta aquí…, en unos días, como implementar Laravel, ya con el mcrypt instalado 😉

Un saludo pues,

José Ramón León
 Si paras y documentas, fijo que le ahorras un montón de tiempo, a un montón de gente... No reinventes la rueda, ¡evoluciónala!