mCrypt não está presente após a atualização do Ubuntu para 13.10

92

Depois de atualizar meu sistema do Ubuntu 13.04 para 13.10, vários problemas ocorreram com as configurações do apache, mysql e php.

Eu resolvi a maioria deles, mas não consigo fazer a biblioteca mCrypt funcionar. O pacote está instalado, então não preciso fazer o apt-get. O servidor funciona e tudo parece bem, mas quando tento rodar php artisan servecom o Laravel 4, recebo uma mensagem de que o mCrypt é necessário.

Eu fiz php --ri mcrypte a saída era Extension 'mcrypt' not present. eu tentei colocar extension=mcrypt.soa /etc/php5/apache2/php.ini, mas não funcionou.

Alguma ideia?

Saída 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
Vuk Stanković
fonte
Tem certeza de que está instaladodpkg --get-selections | grep php5
tlenss
apt-get install php5-mcrypt?
Lajos Veres
1
Eu atualizei a pergunta com a saída do comando @tlenss. sudo apt-get install php5-mcryptinforma que está instalado e a versão mais recente
Vuk Stanković
2
Talvez a resposta aqui ajude você askubuntu.com/questions/360646/…
tlenss
Foi encontrado um bug do launchpad nessa página que me deu a solução. Obrigado
Vuk Stanković

Respostas:

273

Acho que encontrei a solução em launchpad.net .

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

Isso funcionou para mim.

Vuk Stanković
fonte
Obrigado por esta resposta, no OpenCart 1.5.6 este problema estava causando o erro ... Erro fatal: chamada para função indefinida mcrypt_create_iv () em / <caminho aqui> /system/library/encryption.php na linha 8
AndyGaskell
Observe que esta solução não funcionou para mim com o Laravel / Artisan até que eu também fiz um link simbólico em /etc/php5/cli/conf.d
David M
Estou recebendo este erro. Qual código eu preciso atualizar? Em qual arquivo eu preciso atualizar? Por favor, sugira ..
user2089987
Isso estava fazendo com que o Webgility não sincronizasse. Instalá-lo consertou bem. Obrigado!
Ryan,
2
Com o Ubuntu 14.04 / PHP5.5, a primeira linha não é necessária. php5enmod faz o link.
Wolk
27

Tive esse problema com o Ubuntu 14.04 e fiz o seguinte para resolvê-lo:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart
eaykin
fonte
1
Isso é o que funcionou para mim, eu tenho o PHP versão 5.5.9-1ubuntu4.4 e não tinha um diretório /etc/php5/conf.d.
flcoder
14

Eu também tenho esse problema com o Ubuntu 14.04 após a instalação.

Primeiro habilite o mcrypt

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

Adicione este comando em qualquer linha

extension=mcrypt.so

Crie a pasta conf.d em / etc / php5

sudo mkdir conf.d

E dentro dessa pasta crie o arquivo mcrypt.ini

sudo gedit mcrypt.ini 

Em seguida, adicione este comando a esse arquivo

extension=mcrypt.so

Em seguida, crie um link para o arquivo

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

Habilitar módulo mcrypt

sudo php5enmod mcrypt

Reinicie o Apache

sudo service apache2 restart
Daroath
fonte
3
Você não precisa extension=mcrypt.soentrar php.ini. Ele também funciona sem ele, já que as extensões php (como mcrypt) estão em .iniarquivos separados .
Machineaddict de
@machineaddict Para mim, adicionar 'extension = mcrypt.so' funcionou depois de instalar o mcrypt. Lubuntu 14.04 Trusty Thar. Não fui carregado automaticamente
Clain Dsilva
11

Do Ubuntu 13.10 a 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Funciona para mim.

Aleftos
fonte
Para mim: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. No entanto, o arquivo estava localizado em outro lugar. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/e executou os comandos acima. Retirado de www.devraju.com
machineaddict
3

Também tive esse problema com o Ubuntu 14.04 e o Nginx, mas a dica para mim era reiniciar o serviço FPM, então fiz:

Instale a biblioteca

apt-get install php5-mcrypt

Encontre o caminho

updatedb && locate mcrypt.so

Defina o caminho de mcrypt.so dentro do arquivo mcrypt.ini localizado em /etc/php5/mods-available/mcrypt.ini

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

E então reinicie o serviço FPM

reiniciar serviço php5-fpm

Deric Lima
fonte
Eu só precisava instalar o apt-get php5-mcrypt e reiniciar o serviço php5-fpm no meu Ubuntu 14.04.
deanpodgornik
Legal .. No meu caso, preciso encontrar o lib mcrypt manualmente porque a extensão estava vazia no arquivo mcrypt.ini.
Deric Lima
0

Outra solução se o pacote já estiver instalado:

sudo aptitude reinstall php5-mycript

Isso funcionou para mim depois de fazer a atualização

rreimi
fonte
0

Experimente este código:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
Indrajeet Singh
fonte
0

Eu tive o mesmo problema com o PHP 5.5.14 rodando no Mac OS X Yosemite. Estava tentando instalar o Laravel 5.0. E quando tentei criar um novo projeto, recebi um erro como o abaixo (mesmo quando tentei iniciar o servidor laravel com 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$ 

Então, acabei de adicionar a linha abaixo no final do meu arquivo php.ini com o editor nano:

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

Finalmente, basta reiniciar o Terminal e reiniciar o servidor de aplicativos laravel com

php artisan serve

E funciona bem!

alexventuraio
fonte
0

acabei de encontrar em php.net

Nota, para o Ubuntu, simplesmente instalar php5-mcrypt não fez o mcrypt funcionar. Você precisa executar os seguintes comandos como root para habilitá-lo:

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

SharkWeb
fonte
0

Às vezes, esse "problema" ocorre porque você inseriu um comando artesanal em sua máquina local em vez de em sua máquina virtual. Se você estiver usando Homestead, mcrypt já está instalado. Considere isso um lembrete parahomestead ssh

Chukky Nze
fonte