mCrypt no está presente después de la actualización de Ubuntu a 13.10


92

Después de haber actualizado mi sistema de Ubuntu 13.04 a 13.10, se han producido varios problemas con las configuraciones de apache, mysql y php.

Resolví la mayoría de ellos, pero parece que no puedo hacer que la biblioteca mCrypt funcione. El paquete está instalado, por lo que no necesito apt-getlo. El servidor funciona y todo parece estar bien, pero cuando intento ejecutar php artisan servecon Laravel 4, aparece un mensaje de que se requiere mCrypt.

Lo hice php --ri mcrypty el resultado era Extension 'mcrypt' not present. que he intentado poner extension=mcrypt.soa /etc/php5/apache2/php.ini, pero no funcionó.

¿Algunas ideas?

Salida de dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

¿Está seguro de que está instaladodpkg --get-selections | grep php5
Tlenss

apt-get install php5-mcrypt?
Lajos Veres

1
He actualizado la pregunta con la salida del comando @tlenss. sudo apt-get install php5-mcryptsalidas que está instalado y la versión más reciente
Vuk Stanković

2
Tal vez la respuesta aquí lo ayude a askubuntu.com/questions/360646/…
tlenss

Encontré un error de Launchpad en esa página que me dio la solución. Gracias
Vuk Stanković

Respuestas:


273

Creo que encontré la solución en launchpad.net .

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

Esto funcionó para mí.


Gracias por esta respuesta, en OpenCart 1.5.6 este problema estaba causando el error ... Error fatal: llamada a la función indefinida mcrypt_create_iv () en / <ruta aquí> /system/library/encryption.php en la línea 8
AndyGaskell

Cabe destacar que esta solución no funcionó para mí con Laravel / Artisan hasta que también hice un enlace simbólico en /etc/php5/cli/conf.d
David M

Recibo este error. ¿Qué código tengo que actualizar? ¿En qué archivo necesito actualizar? Sugiero amablemente ..
user2089987

Esto estaba causando que Webgility no se sincronizara. Instalarlo lo arregló bien. ¡Gracias!
Ryan

2
Con Ubuntu 14.04 / PHP5.5 no se necesita la primera línea. php5enmod hace el enlace.
Wolk

27

Tuve este problema con Ubuntu 14.04 e hice lo siguiente para resolverlo:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
Esto es lo que funcionó para mí, tengo PHP versión 5.5.9-1ubuntu4.4, y no tenía un directorio /etc/php5/conf.d.
flcoder

14

También tengo este problema con Ubuntu 14.04 después de la instalación.

Primero habilita mcrypt

sudo gedit /etc/php5/apache2/php.ini

Agrega este comando en cualquier línea

extension=mcrypt.so

Cree la carpeta conf.d en / etc / php5

sudo mkdir conf.d

Y dentro de esa carpeta crea el archivo mcrypt.ini

sudo gedit mcrypt.ini 

Luego agregue este comando a ese archivo

extension=mcrypt.so

Luego crea un enlace al archivo

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

Habilitar el módulo mcrypt

sudo php5enmod mcrypt

Reiniciar apache

sudo service apache2 restart

3
No es necesario extension=mcrypt.soen php.ini. También funciona sin él, ya que las extensiones php (como mcrypt) están en .iniarchivos separados .
machineaddict

@machineaddict Para mí, agregar la 'extensión = mcrypt.so' funcionó después de instalar mcrypt. Lubuntu 14.04 Trusty Thar. No se cargó automáticamente
Clain Dsilva

11

De Ubuntu 13.10 a 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Funciona para mi.


Para mí: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Sin embargo, el archivo se encontraba en otro lugar. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/y ejecutó los comandos anteriores. Tomado de www.devraju.com
machineaddict

3

También tuve este problema con Ubuntu 14.04 y Nginx, pero el consejo para mí fue reiniciar el servicio FPM, así que lo hice:

Instalar la biblioteca

apt-get install php5-mcrypt

Encuentra el camino

updatedb && localizar mcrypt.so

Establezca la ruta de mcrypt.so dentro del archivo mcrypt.ini ubicado en /etc/php5/mods-available/mcrypt.ini

extensión = / usr / lib / php5 / 20121212 / mcrypt.so

Y luego reinicie el servicio FPM

reiniciar el servicio php5-fpm


Solo necesitaba apt-get install php5-mcrypt y luego reiniciar el servicio php5-fpm en mi ubuntu 14.04.
deanpodgornik

Agradable ... En mi caso, necesitaba encontrar mcrypt lib manualmente porque la extensión estaba vacía en el archivo mcrypt.ini.
Deric Lima

0

Otra solución si el paquete ya está instalado:

sudo aptitude reinstall php5-mycript

Esto funcionó para mí después de hacer la actualización


0

Prueba este código:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart

0

Tuve el mismo problema con PHP 5.5.14 ejecutándose en Mac OS X Yosemite. Estaba intentando instalar Laravel 5.0. Y cuando intenté crear un nuevo proyecto, recibí un error como el siguiente (incluso cuando intenté iniciar el servidor laravel con php artisan serve

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

Así que acabo de agregar la línea a continuación al final de mi archivo php.ini con el editor nano:

extension=mcrypt.so
sudo nano /etc/php.ini

Finalmente, simplemente reinicie la Terminal y reinicie el servidor de la aplicación laravel con

php artisan serve

¡Y funciona bien!


0

recién encontrado en php.net

Tenga en cuenta que para Ubuntu, simplemente instalar php5-mcrypt no hizo que mcrypt funcionara. Debe ejecutar los siguientes comandos como root para habilitarlo:

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609


0

A veces, este "problema" ocurre porque ingresó un comando artesanal en su máquina local en lugar de en su máquina virtual. Si está utilizando Homestead, mcrypt ya está instalado. Considérelo un recordatorio parahomestead ssh

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.