Delirios de un Informático

Instalar Phalcon en el PHP “nativo” de Mac OS X

Phalcon es un excelente framework para PHP con la particularidad de estar programado en C como una extensión del lenguaje. Ha evolucionado muchísimo y se ha convertido, en mi opinión, en uno de los frameworks más completos e interesantes después de Laravel.

La instalación en Mac puede realizarse con Homebrew pero realiza la instalación de una versión de PHP aparte de la versión nativa de Mac OS X. Si queremos compilar la extensión de Phalcon sin más dependencias, los pasos a seguir difieren un poco de las instrucciones oficiales:

brew install gettext
brew link --force gettext
git clone https://github.com/phalcon/cphalcon
cd cphalcon/build/64bits
git checkout 1.3.4
phpize
./configure --enable-phalcon
make
sudo cp modules/phalcon.so /usr/lib/php/extensions/no-debug-non-zts-20121212

Siguiendo las instrucciones de la web oficial, nos encontramos con dos problemas: el primero es que no localiza el archivo libintl.h (de ahí el uso de Homebrew para instalar GetText) y el segundo es un fallo con _libintl_setlocale en ciertas versiones, que provoca el siguiente error:

dyld: lazy symbol binding failed: Symbol not found: _libintl_setlocale
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20100525/phalcon.so
  Expected in: flat namespace

dyld: Symbol not found: _libintl_setlocale
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20100525/phalcon.so
  Expected in: flat namespace

Este error se evita haciendo el checkout a la última versión publicada.