Kohana en Mac OsX Mountain Lion (PECL_HTTP, MCRYPT)

Estoy haciendo una app en Kohana y pensaba instalarlo en mi Mac; Instalar Kohana en Mountain Lion es sencillo solo se necesita PHP y MySQL lo complicado es instalar las extensiones pecl_http y mcrypt que no vienen con el PHP que trae el Mac ( 5.3.13).

Para instalar todo esto es necesario tener un entorno de compilación por lo que hay que descargar el Xcode 4, y después en preferencias instalar las herramientas de consola como se indica en este post.

Una ves que tenemos este entorno instalamos Homebrew para que nos ayude a compilar las librerías necesarias. Si tenemos las herramientas de consola de Xcode instaladas es solo darle al comando

ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

previa a la instalación del pecl-http necesitamos pear que si bien se encuentra en el sistema no está configurado

sudo cp /private/etc/php.ini.default /private/etc/php.ini
sudo php /usr/lib/php/install-pear-nozlib.phar
pear config-set php_ini /private/etc/php.ini
pecl config-set php_ini /private/etc/php.ini
sudo pear upgrade-all

Ahora si podemos instalar pecl-http aunque previo a ello necesitamos la biblioteca pcre

brew install pcre
sudo pecl install pecl_http
sudo apachectl restart

El utilitario pecl se encarga de editar el php.ini por lo que no necesitamos tocarlo. Ya instalado podemos probar que funciona en la página de requisitos de Kohana.

Instalar mcrypt va a resultar mas complicado porque no existe la extensión así que tendremos que compilarla, descargando php 5.3.13 que es la versión que viene con Mountain Lion e instalando la biblioteca mcrypt con brew.

brew install mcrypt
wget http://es.php.net/get/php-5.3.13.tar.gz/from/this/mirror
tar -zxvf php-5.3.13.tar.gz
cd php-5.3.13/ext/mcrypt/
phpize
make
cd modules
sudo cp mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

finalmente editamos php.ini y añadimos la extension mcrypt

extension="mcrypt.so"

Reiniciamos apache y debería todo estar listo para desarrolar con Kohana en un Mac con Mountain Lion.