Estou tentando usar a migrate
função Laravel 4
on OSX
. No entanto, estou recebendo o seguinte erro:
Laravel requires the Mcrypt PHP extension.
Pelo que entendi, ele já está ativado (veja a imagem abaixo).
O que está errado e como posso corrigi-lo?
Respostas:
As extensões ativadas pela Web e as extensões ativadas pela linha de comando podem diferir. Corra
php -m
no seu terminal e verifique semcrypt
está listado. Se não estiver, verifique onde a linha de comando está carregando seuphp.ini
arquivo, executandophp --ini
no seu terminal.Neste
php.ini
arquivo você pode habilitar a extensão.OSX
Eu ouvi falar de pessoas no OSX que se deparam com problemas devido ao terminal apontar para o PHP nativo enviado com o OSX. Em vez disso, você deve atualizar seu perfil do bash para incluir o caminho real para o seu PHP. Algo assim (na verdade, eu não uso o OSX, portanto, pode não ser 100%):
Ubuntu
Nas versões anteriores do Ubuntu (anteriores à 14.04), quando você o executa
sudo apt-get install php5-mcrypt
, na verdade não instala a extensão nomods-available
. Você precisará ligar novamente.Em todas as versões do Ubuntu, você precisará habilitar o mod uma vez instalado. Você pode fazer isso com
php5enmod
.fonte
sudo apt-get install php5-mcrypt
não instalar a extensão completamente.Você possui o MAMP instalado?
Use
which php
no terminal para ver qual versão do PHP você está usando.Se não for a versão PHP do MAMP, você deve editar ou adicionar
.bash_profile
o diretório inicial do usuário, ou seja:cd ~
Em
.bash_profile
, adicione a seguinte linha:Editado: Primeiro você deve usar o comando
cd /Applications/MAMP/bin/php
para verificar qual versão PHP do MAMP você está usando e depois substituir pela versão PHP acima.Então
restart
o terminal para ver qual PHP você está usando agora.E deve estar funcionando agora.
fonte
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
... supondo que você esteja filmando para 5.4.xx, também há 5.3 e 5.5.cd ~
é muito importante, você deve abrir o.bash_profile
que existe lá, TAMBÉM importante é que você deve fechar seu terminal e reabrir para que as novas variáveis do bash sejam carregadas. Apenas certifique-se de executar qual php para verificar se sua alteração foi aplicada, uma codificação feliz!Para aqueles que usam o XAMPP 1.7.3 e Mac
which php
/usr/bin/php
, prossiga para 3.sudo nano ~/.bash_profile
(ousudo vim ~/.bash_profile
se você souber como usá-lo)export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
which php
. Se você fez certo, deve ser o mesmo que o caminho no número 4.A razão para o erro mcrypt é porque o seu Mac usa seu php nativo, você precisa alterá-lo para o que o xampp possui.
PS: Eu recomendaria usar o MAMP para Laravel 4 para usuários de Mac; esse problema será resolvido juntamente com o erro de informações do arquivo php sem suor, e a versão php do xampp está desatualizada.
fonte
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
Para usuários não MAMP ou XAMPP no OSX (com o homebrew instalado):
brew install homebrew/php/php56-mcrypt
Felicidades!
fonte
$ brew install homebrew/php/php55-mcrypt
, caso contrário, temError: No available formula with the name "php55-mcrypt"
Usando o Ubuntu, apenas
fez o truque para mim. Você não precisa reiniciar o Apache, pois precisa usar o PHP apenas na CLI.
fonte
No Ubuntu (PHP-FPM, Nginx)
Após instalar o php5-mcrypt
você precisa fazer um link simbólico para arquivos ini no mods-available:
habilitar:
reinicie o php5-fpm:
Mais detalhes
fonte
sudo aptitude -y install php5-mcrypt
, seguido porsudo php5enmod mcrypt
esudo service php5-fpm restart
. (Eu pulei a etapa de vinculação suave). Funcionou :)Colocando o Laravel trabalhando no Apache
Versão do PHP: PHP 5.5.9
Versão do Ubuntu: 14.04
Eu tinha um projeto laravel trabalhando no Windows. Quando o copiei para o servidor ubuntu, comecei a receber o erro mcrypt. isso depois de muitas horas de tentativa e erro
obtendo o comando artesanal trabalhando
(se você estiver tendo erro mcrypt ao usar a ferramenta de linha de comando artesanal)
Eu fiz várias tentativas e erros, portanto, toda vez que executava o comando php5enmod antes, recebi mensagens de erro. mas na instalação nova, não houve mensagens de erro. após esta etapa, eu tenho o comando artesanal trabalhando
corrigindo o erro do navegador
(se você estiver tendo erro mcrypt no navegador ao acessar a página de índice local do laravel)
adicione a seguinte linha na seção extensões dinamicamente compiladas do php ini
reinicie o servidor apache, limpe o cache do laravel e tudo o que estiver funcionando
fonte
docker-php-ext-install mcrypt
. Testado em imagem:php:5.6.31-apache
. Sem isso,php -m
não mostramcrypt
.Para instalações php-fpm no Ubuntu 14.04, o seguinte funcionou para mim:
sudo apt-get install php5-mcrypt
Isso criará um
mcrypt.ini
arquivo dentro/etc/php5/mods-available/
Então
sudo php5enmod mcrypt
criará um link simbólico em:
/etc/php5/fpm/conf.d/
Basta reiniciar os serviços php-fpm
sudo service php5-fpm restart
fonte
Para o ubuntu, tente estas etapas se outras pessoas não estiverem funcionando:
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
Espero que ajude. Obrigado !
fonte
Ou use:
não tenho certeza se isso funcionará nas instalações padrão do PHP - eu instalei
php 5.5.7
usando o pacote de:fonte
Meu sistema operacional é
Yosemite
.Eu resolvo esse problema, encontrando os caminhos de configuração:
Exemplo de saída:
Próximos passos:
Comandos:
Então você pode verificar seus módulos php via:
fonte
Apenas para yumers,
Talvez você precise instalar o remi repo
fonte
Isso resolveu para mim no meu ambiente local Linux Mint /ubuntu/350942/cannot-get-mcrypt-for-php5
Eu precisava fazer um link simbólico para o meu arquivo /etc/php5/conf.d/mcrypt.ini nas seguintes pastas /etc/php5/apache2/conf.d/mcrypt.ini e /etc/php5/cli/conf.d /mcrypt.ini
fonte
Você precisa de um ambiente tudo em um. Você pode usar MAMP ou XAMPP ou qualquer outra ferramenta. Após instalar uma dessas ferramentas, você precisará editar (criar) seu .bash_profile (Supondo que você use o bash).
Ou, mesmo simples e mais profissional, você pode usar o Laravel Homestead.
Aqui está um link para a documentação oficial: http://laravel.com/docs/5.0/homestead
Jeffrey também tem um tutorial gratuito sobre o assunto: https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Aconselho que você escolha a propriedade, porque você pré-instalará todas as ferramentas a seguir.
fonte
Expandindo em @JetLaggy:
Depois de tentar repetidamente modificar .bash_profile com o diretório MAMP, alterei as permissões de arquivo para o diretório php do MAMP e consegui obter 'what php' para mostrar o diretório apropriado. O problema era que outras funções não funcionavam, como 'php -v'.
Então eu atualizei o MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Isso fez o truque para minha configuração específica. Eu tive que ajustar meu PATH para refletir a versão atualizada do PHP, mas depois disso, tudo funcionou!
fonte
No OS X
Usando MAMP
Digite o comando
which php
no terminal para ver qual versão do PHP você está usando. Se não for a versão PHP do MAMP, a variável $ PATH usada pelo Bash precisará ser atualizada.Primeiro, você deve usar o comando "cd / Applications / MAMP / bin / php" para verificar qual versão php do MAMP e tomar nota da versão (por exemplo, php5.6.7).
Depois de conhecer a versão, edite o
~/.bash_profile
arquivo (ou seja, o.bash_profile
que está no diretório inicial) e adicione uma linha de exportação:Certifique-se de substituir o php5.6.7 pela versão do PHP que você selecionou no MAMP.
Depois que o arquivo for salvo, feche o Terminal e abra-o novamente. Feito isso, você usará o PHP que acompanha o MAMP.
Uma maneira de encontrar facilmente qual deve ser a linha que você precisa colocar dentro do seu
.bash_profile
é executar o seguinte comando dentro do seu terminal:Copiar e colar essas três linhas no seu terminal produzirá corretamente a versão PHP que foi selecionada dentro do painel de controle do MAMP.
Usando Homebrew / MacPorts
Verifique se o seu
path
contém/usr/local/bin/
(Homebrew) ou/opt/local/bin
(MacPorts) se você estiver usando PHP que vem com um desses dois gerenciadores de pacotes.Verificando o caminho do PHP com MacPorts
Você pode encontrar a localização exata do PHP usando MacPorts com o seguinte comando:
Observe que você deve substituir
php70
pela versão do PHP que você instalou.Verifique o caminho do PHP com Homebrew-php
Homebrew-php ( https://github.com/Homebrew/homebrew-php ) é um toque que possui várias versões diferentes do PHP.
Você pode encontrar a localização exata do PHP usando o Homebrew com o seguinte comando:
Observe que você deve substituir
php56
pela versão do PHP que você instalou.fonte
no Ubuntu 14.04
Ubuntu 16.04
Ubuntu 18.04
ou
fonte
Se você estiver usando o Z Shell, faça o seguinte:
nano ~/.zshrc
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
source ~/.zshrc
which php
- você deve obter o caminho do MAMP 5.6.105.6.10 é a versão do PHP que você definiu no seu MAMP.
fonte
OSX com fermentação
Estou executando o PHP 7.0.x, então altere "php70" para sua versão, se você estiver usando uma versão diferente.
Como indicado em outras respostas, você pode ver sua versão php com
$ php -v
.fonte
Para quem ainda vem aqui hoje:
O Laravel não precisa
mcrypt
mais de extensão .mcrypt
está obsoleta, a última atualização do libmcrypt foi em 2007. O Laravel 4.2 também está obsoleto e não tem mais suporte. A melhor solução (= segura) é atualizar para o Laravel> 5.1 (não há LTS antes do Laravel 5.2).O Mcrypt foi removido do Laravel em junho de 2015: https://github.com/laravel/framework/pull/9041
fonte
fonte
mcrypt
. Você poderia expandir por que acredita que isso resolverá o problema do OP?no ubuntu 14.04 com base na sua versão php: 5.6,7.0,7.1,7.2,7,3
fonte