A extensão mcrypt está ausente no servidor 14.04 para mysql

112

A extensão php mcrypt no ubuntu 14.04 mostra que está instalada corretamente, mas o phpmyadmin diz:

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

Minha configuração php atual está aqui . Se você precisar de mais informações, entre em contato comigo através dos comentários.

$ 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
fonte
7
A resposta aceita não é a melhor prática. A resposta mais simples e correta: http://askubuntu.com/a/477608/139249 também tem mais votos.
Mike Stewart
Para referência de outras pessoas, a resposta "mais simples" não funcionou para mim. php5enmod mcryptcongelou o Apache. php5dismod mcryptliberou-o novamente. Eu fui com a resposta aceita e modifiquei o caminho para extension=..e desta vez php5enmod mcryptfuncionou. Então, sim, é abrangente e deve ser a resposta aceita.
Oliver Williams

Respostas:

138

Tente o seguinte:

sudo updatedb 
locate mcrypt.ini

Deve mostrá-lo localizado em / etc / php5 / mods-available

locate mcrypt.so

Edite mcrypt.ini e altere a extensão para corresponder ao caminho para mcrypt.so, exemplo:

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

Agora isso:

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

Verifique se existem novos arquivos aqui (eles devem ser criados automaticamente a partir do problema acima)

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

Caso contrário, faça o seguinte

Crie links de símbolos agora

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

Reinicie o Apache

sudo service apache2 restart

Reinicie o php5 ou php5-fpm

sudo service php5 restart
Kevsin
fonte
Isto está errado! Eu acho que você quis dizer algo como: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini E não o contrário.
wolfdawn
14
Fazer apenas php5enmod mcryptfuncionou bem para mim.
Diosney
3
A execução php5enmod mcryptcriará esses links simbólicos para você. Não há necessidade de fazer isso manualmente (ou seja, você pode pular os ln -scomandos).
Serrano
1
correr php5enmod mcrypté a maneira correta do Ubuntu / Debian. Embora esta resposta funcione, é complicada e não é uma prática recomendada.
Mike Stewart
1
muitos passos acima não são necessários. Veja a resposta de @ MURATSPLAT.
Raptor
155

Tente fazer o seguinte:

sudo php5enmod mcrypt

E depois:

sudo service apache2 restart 

Instalei o Ubuntu 14.04 (versão desktop) fresco no meu computador. Dessa maneira, funciona para ativar o mcrypt que já estava instalado.

MURATSPLAT
fonte
5
Nota, se você estiver executando o nginx com php5-fpm - então php5-fpm service restart(ou recarregar se ele está finalmente remendado)
Mike Stewart
2
O que esses dois comandos fazem é o seguinte: a 1ª linha está habilitando o módulo chamado 'mcrypt' e, em seguida, reinicie o apache2 para atualizar a configuração. Você pode ver o módulo ativado em /etc/apache2/mods-available. Aprecie a vida da LAMP :)
itiskj
sudo service apache2 reloadé suficiente, não restart real é necessário (em 14.04 de qualquer maneira, isso é o que eu tentei-on)
Jasper
55

Instale a mcryptextensão para PHP, ative-a e reinicie o Apache. A seguir estão os comandos a serem executados:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
thucnguyen
fonte
1
Simples. Perfeito. Funciona sem problemas, pelo menos para mim no Ubuntu 14.04.1 LTS (confiável) #
Gor Gor
Ele está trabalhando no Ubuntu 14.10 também
Coca Akat
Eu recomendo que você não inclua mcryptna sua primeira linha. Ele está implicitamente instalado como uma dependência de php5-mcrypt, mas se você o instalar explicitamente, o apt-get não saberá removê-lo se você optar por desinstalar o ph5-mcryptpacote posteriormente .
beldaz
@beldaz, há pelo menos um servidor em que o php5-mcrypt foi instalado conforme o apt-get, mas o mcrypt estava ausente por causa de qual módulo pnp não estava sendo ativado, levando a um problema de instalação do joomla. então incluir mcrypt faz sentido para mim.
TagMacher
6

O pacote Ubuntu php5-mcrypt instala o arquivo de configuração mcrypt.inino /etc/php5/conf.d/qual está o layout do diretório de configuração antigo do PHP.

A maneira atual de trabalhar para habilitar os módulos no PHP5 é colocar os arquivos ini no /etc/php5/mods-availablediretório Em seguida, para ativar o módulo no PHP5, é necessário criar um link simbólico para os arquivos ini relacionados do /etc/php5/apache2/conf.ddiretório para ativar o módulo quando o PHP for usado no Apache ou / e /etc/php5/cli/conf.dse você desejar ativar esse módulo quando usar o PHP fora Apache, em scripts executados na linha de comando ou no crontab.

Observe também que no conf.ddiretório, você pode criar o link para o arquivo ini colocando um número na frente dele para carregar os módulos em uma ordem específica. Útil quando você precisar carregar um módulo, dependendo de outro.

Obviamente, não se esqueça de reiniciar o Apache se você tiver ativado o módulo para o Apache:

 sudo service apache2 restart
Benoit
fonte
4

Minha instalação do servidor 14.04 é necessária apenas (após a instalação do php5-mcrypt)

sudo php5enmod mcrypt
sudo service apache2 restart
John
fonte
3

Se o problema ainda ocorrer,

ative o módulo adicionando: extension=mcrypt.soa

/etc/php5/cli/php.ini

e

/etc/php5/apache2/php.ini

snickers2k
fonte
1
Para mim, adicionar o 'extension = mcrypt.so' funcionou após a instalação do mcrypt. Lubuntu 14,04 Trusty Thar
Clain Dsilva
Isso funciona e é MUITO mais simples que a resposta aceita ... que também será interrompida quando for atualizada.
Eric
Eu segui todas as instruções aqui e em outros lugares, mas em vão. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Versão do servidor: 5.7.10 - MySQL - Versão do cliente de banco de dados: libmysql - 5.5.47 - phpMyAdmin Version: 4.0.10deb1 ....Alguém tem uma ideia?
Jadeye #
2

No Ubuntu 16.04 LTS, para habilitar o módulo mcrypt, com o php 5.6:

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

ou com o php 7.0:

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

e depois

sudo service apache2 restart
Rômulo ZC Cunha
fonte
1

Com o PHP 7

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart
madeye
fonte
$ sudo phpenmod mcrypt AVISO: o arquivo mcrypt ini do módulo não existe em /etc/php/7.1/mods-available
Yevgeniy Afanasyev
$ sudo /etc/init.d/apache2 restart sudo: /etc/init.d/apache2: comando não encontrado
Yevgeniy Afanasyev 15/16
0

Você deve conseguir instalar a extensão mcrypt para PHP executando:

sudo apt-get install php5-mcrypt
jkt123
fonte
bem, ele diz que (linha de comando) está instalado corretamente, mas é de alguma forma ausente do servidor como mencionado acima
matthapkidokarate
1
@ jkt123: Eu notei que quando você instala algum módulo php como php5-mcrypt no Ubuntu, todos os arquivos estão lá depois, mas o módulo não está ativado na principal configuração do PHP. Você deve ativá-lo manualmente, como descrito na resposta aceita.
Benoit
ele não funciona sem adicionar a extensão = mcrypt.so ao php.ini
Eric
0

Observe que no Ubuntu 14.04 o php5-mcrypt está no repositório do universo que pode ser desativado. Nesse caso, para instalá-lo, você deve ativar o repositório com:

sudo add-apt-repository universe
salgua
fonte
0

Você precisa habilitar o módulo mcrypt:

sudo php5enmod mcrypt
sudo service apache2 restart
Debanjan Roy
fonte
0

Esta é a melhor maneira de adicionar extensão php 5.5 mcrypt no 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
fonte
0

A resposta de @ Kevsin funcionou para mim, mas eu tive que executar mkdir -p /etc/php5/apache2/conf.d/e manualmente executar o sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.inipara começar a trabalhar. sudo php5enmod mcryptfuncionou bem para o primeiro link simbólico.

Nota: Estou executando o PHP5-FPM. Essa pode ter sido a diferença.

ZachLanich
fonte
0

Para quem encontrar isso, no Ubuntu 16.04 (usando PHP7), aqui está o que eu fiz para ativar o mcrypt:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
Richard
fonte