Libreria Mcrypt de apache

Al instalar esta librería en Mac con un port install php53-mysql o en Ubuntu con un apt-get install php5-mcrypt, y tras reiniciar el apache a veces no nos funciona, y lo vemos porque no sale en un phpinfo o simplemente porque nos da error al cargar la librería.

El problema es que en lugar de dejar la librería mcrypt.so en el sitio por defecto donde php (por ejemplo /opt/local/lib/php/extensions/no-debug-non-zts-20090626/) va a buscarlo deja las librerías en otro directorio, /opt/local/lib/php53/extensions/no-debug-non-zts-20090626/

La solución pasa por modificar el php.ini para añadir un directorio de extensiones. Por ejemplo en Mac sería


extension_dir="/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/"

Otra solución es crear enlaces simbólicos según las librerías instaladas en la carpeta por defecto. Para ello hacemos un ls de la carpeta y vamos haciendo los enlaces simbólicos.


ls /opt/local/lib/php53/extensions/no-debug-non-zts-20090626/
ln -s /opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so

Y si no nos queremos complicar nada, pues copiamos de una carpeta a otra .

cp /opt/local/lib/php53/extensions/no-debug-non-zts-20090626/* /opt/local/lib/php/extensions/no-debug-non-zts-20090626/

Para comprobar si funciona desde un terminal hacemos


php -m | grep mcrypt

Y ya sólo nos queda reiniciar el apache. Si nos siguiese dando problemas, deberíamos especificar las librerías en el fichero php.ini y en las extensiones añadir

mcrypt.so

Como siempre, espero que os sirva