Falta la extensión Mcrypt en el servidor 14.04 para mysql

112

La extensión php mcrypt en ubuntu 14.04 muestra que está instalado correctamente, pero phpmyadmin dice:

 The mcrypt extension is missing. Please check your PHP configuration.

Mi configuración php actual está aquí . Si necesita más información, contácteme a través de los comentarios.

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
matthapkidokarate
fuente
77
La respuesta aceptada no es la mejor práctica. La respuesta más simple y correcta: http://askubuntu.com/a/477608/139249 también tiene la mayoría de los votos.
Mike Stewart
Para referencia de otros, la respuesta "más simple" no funcionó para mí. php5enmod mcryptse congeló Apache. php5dismod mcryptlo liberó de nuevo. Fui con la respuesta aceptada y modifiqué el camino extension=..y esta vez php5enmod mcryptfuncionó. Entonces sí, es integral y debería ser la respuesta aceptada.
Oliver Williams

Respuestas:

138

Prueba esto:

sudo updatedb 
locate mcrypt.ini

Debería mostrarlo ubicado en / etc / php5 / mods-available

locate mcrypt.so

Edite mcrypt.ini y cambie la extensión para que coincida con la ruta a mcrypt.so, por ejemplo:

extension=/usr/lib/php5/20121212/mcrypt.so

Ahora esto:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

Verifique que existan nuevos archivos aquí (deben crearse automáticamente a partir del problema anterior)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

De lo contrario, haga lo siguiente

Crear enlaces de símbolos ahora

sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini

Reiniciar Apache

sudo service apache2 restart

Reinicie php5 o php5-fpm

sudo service php5 restart
Kevsin
fuente
¡Esto está mal! Creo que quisiste decir algo como: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini Y no al revés.
wolfdawn
14
Hacerlo php5enmod mcryptfuncionó sin problemas para mí.
diosney
3
Correr php5enmod mcryptcreará esos enlaces simbólicos para ti. No es necesario hacerlo manualmente (es decir, puede omitir los ln -scomandos).
Serrano
1
ejecutar php5enmod mcryptes la forma correcta de Ubuntu / Debian. Aunque esta respuesta funcionará, es engorrosa y no es una mejor práctica.
Mike Stewart
1
Muchos de los pasos anteriores no son necesarios. Ver la respuesta de @ MURATSPLAT.
Raptor
155

Intenta hacer esto:

sudo php5enmod mcrypt

Y entonces:

sudo service apache2 restart 

He instalado Ubuntu 14.04 nuevo (versión de escritorio) en mi computadora. De esta manera funciona para habilitar mcrypt que ya estaba instalado.

MURATSPLAT
fuente
55
Tenga en cuenta, si se está ejecutando nginx con php5-pies por minuto - a continuación php5-fpm service restart(o volver a cargar si finalmente parcheado)
Mike Stewart
2
Lo que hacen estos dos comandos es esto: la primera línea habilita el módulo llamado 'mcrypt' y luego reinicia apache2 para actualizar la configuración. Puede ver el módulo habilitado desde /etc/apache2/mods-available. Disfruta de la vida de LAMP :)
itiskj
sudo service apache2 reloades suficiente, no es necesario reiniciar (en 14.04 de todos modos, eso es lo que probé)
Jasper
55

Instale la mcryptextensión para PHP, actívela y reinicie Apache. Los siguientes son los comandos para hacer:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
Thucnguyen
fuente
1
Sencillo. Perfecto. Funciona sin problemas, al menos para mí en Ubuntu 14.04.1 LTS (confiable)
Gor
También funciona en Ubuntu 14.10
Coca Akat
Le recomendaría que no lo incluya mcrypten su primera línea. Está instalado implícitamente como una dependencia de php5-mcrypt, pero si lo instala explícitamente, apt-get no sabrá cómo eliminarlo si luego elige desinstalar el ph5-mcryptpaquete.
beldaz
@beldaz hay al menos un servidor donde se instaló php5-mcrypt según apt-get pero faltaba mcrypt debido a qué módulo pnp no se habilitó, lo que provocó un problema de instalación de joomla. así que incluir mcrypt tiene sentido para mí.
tagMacher
6

El paquete Ubuntu php5-mcrypt instala el archivo de configuración mcrypt.inien el /etc/php5/conf.d/que se encuentra el antiguo diseño del directorio de configuración de PHP.

La forma actual de trabajar para habilitar módulos en PHP5 es colocar los archivos ini en el /etc/php5/mods-availabledirectorio. Luego, para habilitar el módulo en PHP5, debe crear un enlace simbólico a los archivos ini relacionados desde el /etc/php5/apache2/conf.ddirectorio para habilitar el módulo cuando PHP se usa en Apache o / y /etc/php5/cli/conf.dsi desea tener este módulo habilitado cuando usa PHP fuera Apache, en scripts ejecutados en la línea de comando o desde crontab.

También tenga en cuenta que en el conf.ddirectorio, puede crear el enlace al archivo ini colocando un número delante para que los módulos se carguen en un orden específico. Útil cuando necesita cargar un módulo dependiendo de otro.

Por supuesto, no olvide reiniciar Apache si ha habilitado el módulo para Apache:

 sudo service apache2 restart
Benoit
fuente
4

Mi instalación del servidor 14.04 solo es necesaria (después de instalar php5-mcrypt)

sudo php5enmod mcrypt
sudo service apache2 restart
John
fuente
3

Si el problema persiste,

habilite el módulo agregando: extension=mcrypt.soa

/etc/php5/cli/php.ini

y

/etc/php5/apache2/php.ini

snickers2k
fuente
1
Para mí, agregar 'extension = mcrypt.so' funcionó después de instalar mcrypt. Lubuntu 14.04 Trusty Thar
Clain Dsilva
Esto funciona y es MUCHO más simple que la respuesta aceptada ... que también se romperá cuando se actualice.
Eric
Seguí todas las instrucciones aquí y en otros lugares, pero en vano. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Versión del servidor: 5.7.10 - MySQL - Versión del cliente de la base de datos: libmysql - 5.5.47 - Versión phpMyAdmin: 4.0.10deb1 ....¿Alguien tiene una idea?
Jadeye
2

En Ubuntu 16.04 LTS, para habilitar el módulo mcrypt, con php 5.6:

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

o con php 7.0:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

y entonces

sudo service apache2 restart
Rômulo ZC Cunha
fuente
1

Con PHP 7

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart
Madeye
fuente
$ sudo phpenmod mcrypt ADVERTENCIA: el archivo ini mcrypt del módulo no existe en /etc/php/7.1/mods-available
Yevgeniy Afanasyev
$ sudo /etc/init.d/apache2 restart sudo: /etc/init.d/apache2: comando no encontrado
Yevgeniy Afanasyev
0

Debería poder instalar la extensión mcrypt para PHP ejecutando:

sudo apt-get install php5-mcrypt
jkt123
fuente
bueno, dice que (línea de comando) está instalado correctamente, pero de alguna manera falta en el servidor como se mencionó anteriormente
matthapkidokarate 05 de
1
@ jkt123: Me di cuenta de que cuando instala algún módulo php como php5-mcrypt en Ubuntu, todos los archivos están allí después, pero el módulo no está habilitado en la configuración principal de PHP. Debe activarlo manualmente como se describe en la respuesta aceptada.
Benoit
no funciona sin agregar la extensión = mcrypt.so a php.ini
Eric
0

Tenga en cuenta que en Ubuntu 14.04 el php5-mcrypt está en el repositorio del universo que podría deshabilitarse. En este caso para instalarlo, debe habilitar el repositorio con:

sudo add-apt-repository universe
salgua
fuente
0

Debe habilitar el módulo mcrypt:

sudo php5enmod mcrypt
sudo service apache2 restart
Debanjan Roy
fuente
0

Esta es la mejor manera de agregar la extensión php 5.5 mcrypt en Ubuntu 14.04 Server

sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt 
sudo service apache2 restart
Vigyanlabs Inc
fuente
0

La respuesta de @ Kevsin funcionó para mí, pero tuve que ejecutar mkdir -p /etc/php5/apache2/conf.d/y ejecutar manualmente sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.inipara llegar al trabajo. sudo php5enmod mcryptfuncionó bien para el primer enlace simbólico.

Nota: estoy ejecutando PHP5-FPM. Esa puede haber sido la diferencia.

ZachLanich
fuente
0

Para aquellos que encuentran esto, para Ubuntu 16.04 (usando PHP7), esto es lo que hice para habilitar mcrypt:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
Ricardo
fuente