He hecho esto muchas veces:
sudo aptitude install php5-mcrypt
sudo apache2ctl restart
aptitude dice que mcrypt está instalado. Ya lo he reinstalado 3 veces. He reiniciado Apache unas 20 veces desde que lo instalé. Cuando miro phpInfo, no veo mcrypt en la lista. Cuando intento ejecutar mi código, dice que la función mcrypt (elegir uno, cualquiera) no existe. mcrypt claramente no está habilitado.
¿Alguien tiene alguna idea de lo que podría estar mal? No sé qué piezas deberían estar dónde y cómo se supone que todo esto encaja.
Instalé PHP 5.5.3
apt-get
/aptitude
)? El paquetephp5-mcrypt
solo puede configurar la extensión paraphp.ini
lo que "conoce". En segundo lugar, no sé siapache2ctl
vuelve a cargar los módulos. La forma "normal" de reiniciar Apache sería algo asísudo service apache2 restart
. Tercero, ¿cómo se conecta PHP a su Apache? Si usa algo como (f) cgi o php-fpm (en contraste con mod-php), probablemente tendrá que reiniciar PHP por su cuenta, además de reiniciar Apache.php.ini
aparece en la salida dephpinfo
(aproximadamente de la 5ª a la 7ª entrada)? Debería ser un archivo/etc/php5/
. Si busca en ese archivomcrypt
, ¿qué aparece?mcrypt
paquete. Ese es el programa de línea de comandos que usa libmcrypt, al igual que la extensión PHP. Por lo tanto, debe asegurarse de que el paquetelibmcrypt4
esté instalado. ¿Hay unphp.ini
fragmento en/etc/php5/conf.d/mcrypt.ini
? Eso debería cargar la biblioteca. ¿Es ese fragmento cargado por PHP (verphpinfo
)? De nuevo, ¿ha intentado reiniciar Apache con ensudo service apache2 restart
lugar deapache2ctl
?Respuestas:
Prueba esto
fuente
Tuve un problema similar en Ubuntu 13.10. Al ejecutar la instalación del compositor, produjo el mismo error, terminando en.
Lo instalé
mcrypt
yphp5-mcrypt
con aptitude, y aúnphp -m
no aparecíamcrypt
como una extensión cargada:Corrí un
updatedb
, y luegolocate mcrypt
. Encontré mimcrypt.ini
en/etc/php5/conf.d
. Sin embargo, todas las otras extensiones (como json) tenían sus archivos .ini en/etc/php5/apache2/conf.d
y/etc/php5/cli/conf.d
. Estos dos fueron enlaces a../../mods.available
.Por lo tanto, luego se trasladó
mcrypt.ini
a/etc/php5/available-modules
, y establecer los enlaces:Y de manera similar para
/etc/php5/apache2/conf.d
.Y voila, apareció en
php -m
!fuente
Parece que falta el fragmento ini que carga libmcrypt cuando Apache llama a PHP. Debería haber un archivo llamado
/etc/php5/apache2/conf.d/mcrypt.ini
con el siguiente contenidoDebería poder copiarlo desde las otras configuraciones de integración de PHP como
/etc/php5/cli/conf.d/mcrypt.ini
o/etc/php5/conf.d/mcrypt.ini
, dependiendo de lo que esté instalado en su sistema.fuente
El módulo mcrypt no está habilitado de forma predeterminada. Habilite el módulo mcrypt y luego reinicie apache ( crédito )
fuente
Bueno, ya está. Parece que a veces estamos buscando la forma más enredada de hacer algo tan simple como 'enmod'; ) Al igual que Boinst dice:
sudo php5enmod mcrypt
. Luego vuelve a cargar apache.fuente