Una de las peores cosas que me ha podido pasar al actualizarme a Mac Os X 10.10.1 Yosemite es el hecho de que me ha reseteado la configuración de Apache/PHP. Basicamente me ha eliminado el archivo php.ini (entre otras cosas) y las librerías gettext y mcrypt.
Lo primero que vamos a hacer es instalar gettext en Yosemite. No tengo muy claro si este paso es absolutamente necesario, lo escribo aquí no sea que luego alguien diga que no le funciona gettext. Instalaremos las tools:
Normalmente trabajo en la carpeta tmp, así al reiniciar el Mac (aunque no lo hago nunca) se elimina automáticamente. Abrimos el Terminal y ponemos:
cd /tmp
Tabla de contenidos
gettext
Descargamos gettext-tools
1 2 | curl -O https://ftp.gnu.org/pub/gnu/gettext/gettext-lastest.tar.gz tar xvzf gettext-lastest.tar.gz |
En mi caso la última versión es la 0.19.3, así que entramos en la carpeta y compilamos:
1 2 3 4 | cd gettext-0.19.3 sudo ./configure sudo make sudo make install |
Ahora que ya tenemos las gettext-tools tocaría compilar las extensiones de PHP. Para eso usaremos GIT:
Volvemos a tmp:
1 | cd /tmp |
Y descargamos los sources de PHP:
1 | git clone https://github.com/php/php-src.git |
Estará un rato descargando código, el proyecto PHP no es pequeñito que digamos. Cambiamos a la rama de nuestra versión de PHP:
1 2 | cd php-src git checkout `php -r 'echo "php-".PHP_VERSION;'` |
Y por fin compilamos la extensión:
1 2 3 4 | cd ext/gettext sudo phpize sudo ./configure sudo make |
Ahora ya tenemos la extensión, la copiamos a la carpeta de extensiones:
1 | cp modules/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20121212/ |
El nombre de la carpeta puede variar dependiendo de la versión de OS X.
Ahora editamos el php.ini (si no teneis php.ini cp /etc/php.ini.default /etc/php.ini):
1 | sudo nano /etc/php.ini |
Vais al final del archivo y añadís:
1 2 | [gettext] extension = /usr/lib/php/extensions/no-debug-non-zts-20121212/gettext.so |
mcrypt
Ahora la extensión mcrypt. El proceso es idéntico al de gettext:
1 2 3 4 | cd ext/mcrypt sudo phpize sudo ./configure sudo make |
Copiamos a la carpeta de extensiones:
1 | cp modules/mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20121212/ |
Ahora editamos el archivo php.ini :
1 | sudo nano /etc/php.ini |
Vais al final del archivo y añadís:
1 2 | [mcrypt] extension = /usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so |
Reiniciamos apache:
1 | sudo apachectl restart |
Conclusión
Yosemite es rápido, Yosemite es bonito pero no han tenido en cuenta, en ningún caso, a los desarrolladores que usamos el Mac como entorno de desarrollo. En fin, no todo será un camino de rosas.