17
respostas

Erro no composer create

Ao tentar executar o comando composer create-project laravel/laravel estoque "5.0.", está dando um erro relacionado a php_mcrypt.dll. Pesquisando verifiquei que esta biblioteca foi descontinuada a partir do PHP 7.2.

O que fazer?

17 respostas

Bom dia, Marcio.

Cole aqui o erro para que possamos lhe auxiliar.

Att.

D:\Alura\LARAVEL>composer create-project laravel/laravel estoque "5.0." Installing laravel/laravel (v5.0.0)

  • Installing laravel/laravel (v5.0.0): Loading from cache Created project in estoque Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages.

    Problem 1

    • laravel/framework v5.0.9 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.8 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.7 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.6 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.5 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.4 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.35 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.34 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.33 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.32 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.31 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.3 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.29 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.28 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.27 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.26 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.25 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.24 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.23 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.22 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.21 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.20 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.2 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.19 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.18 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
  • laravel/framework v5.0.17 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.

    • laravel/framework v5.0.16 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.15 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.14 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.13 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.12 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.11 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.10 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.1 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework v5.0.0 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • laravel/framework 5.0.30 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
    • Installation request for laravel/framework 5.0.* -> satisfiable by laravel/framework[5.0.30, v5.0.0, v5.0.1, v5.0.10, v5.0.11, v5.0.12, v5.0.13, v5.0.14, v5 .0.15, v5.0.16, v5.0.17, v5.0.18, v5.0.19, v5.0.2, v5.0.20, v5.0.21, v5.0.22, v5.0.23, v5.0.24, v5.0.25, v5.0.26, v5.0.27, v5.0.28, v5.0.29, v5.0.3, v5.0.31, v5.0 .32, v5.0.33, v5.0.34, v5.0.35, v5.0.4, v5.0.5, v5.0.6, v5.0.7, v5.0.8, v5.0.9].

    To enable extensions, verify that they are enabled in your .ini files:

    • C:\php\php.ini You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.

Olá, Márcio

A mensagem de erro indica que deve ser habilitado a extensão ext-mcrypt no seu php.ini.

Em sua mensagem inicial você mencionou php_mcrypt.dll com base nisso julgo que seu sistema operacional é windows.

Basta você acessar seu php.ini e liberar descomentado ( remover o ; ) a extensão do mcrypt.

Caso você não saiba onde se encontra o seu php.ini execute o seguinte comando no terminal que o mesmo indicará a localização, sendo:

php --ini

Após localizar o php.ini, habilitar a extensão, você deve realizar o restart do PHP, para que as novas configurações entre em vigor.

Att,

Diego cheguei a fazer isso mas não funcionou pq a dll não existia na pasta EXT. Ao pesquisar verifiquei o mcrypt tinha sido descontinuado (http://php.net/manual/en/intro.mcrypt.php), e com isso não soube o que fazer...

Estou usando esta versão do PHP:

D:\Alura\LARAVEL>php -version PHP 7.3.0 (cli) (built: Dec 6 2018 01:54:16) ( NTS MSVC15 (Visual C++ 2017) x64 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies

Olá Marcio, o seu PHP está na versão 7.3.0 e a biblioteca foi descontinuada a partir da versão 7.1.0. Neste caso, você precisa desinstalar a PHP na sua máquina e instalar a versão 5.6. Ou instalar uma outra versão mais atual do Laravel.

Olá,

@Marcio a extensão foi descontinuada do PHP, ou seja não é mais empacotada junto ao mesmo, onde foi migrada para o pecl ao qual fornece ferramenta para a instalação a extensão.

@Wesley, discordo do seu argumento, downdrade de versão do PHP apenas pelo fato de uma extensão não ser mais empacotada junto ao PHP não é recomendado, alias downgrade é taxativamente desencorajado. Cautela com suas afirmações, pois o Marcio poderia ter desinstalado o PHP e instalado uma versão que não é mais mantida (depreciada em 01/12/2019).

@marcio Caso tenha dúvidas sobre como instalar via pecl avise que posso lhe auxiliar.

Oi Diego, a instalação da biblioteca pecl (que você citou) resolveria o problema do Márcio?

Ou você acha que seria melhor ele utilizar uma versão mais atual do Laravel que suporta o PHP 7.3.0?

Olá, @wesley

Seria ideal utilizar o Laravel 5.7, porém o @marcio deve estar com curso em andamento, onde o mesmo utiliza o Laravel 5.0 onde possivelmente ocorrerá incompatibilidade de recursos, impactando no projeto em desenvolvimento.

Caso ele tenha conhecimento para corrigir os mesmos, show atualiza e segue o jogo, porém acredito que não será esse o caminho.

Com isso a instalação da extensão resolverá o erro de instalação e o mesmo prosseguirá com os estudos.

Levanto essa pergunta ao @marcio, o que você acha? Hoje você se encontra com a versão mais atual do PHP, isso é ótimo, caso queira topar a atualização e validar se ocorrerá incompatíbildiade, segue o jogo e manda as perguntas em mais tópicos.

Top! Obrigado pelo feedback!

@wesley

Referente a sua duvia:

  • "Oi Diego, a instalação da biblioteca pecl (que você citou) resolveria o problema do Márcio?"

PECL é um repositório para extensões PHP, onde ela instala globalmente no PHP a extensão.

Somente a instalação da PECL não resolve pois após instalação da mesma, deve instalar a extensão.

Compreendi Diego, muito obrigado!

Olá @wesley

Obrigado eu, pela receptividade ao feedback.

Então.. Como não tenho bagagem ainda, não consigo definir o melhor caminho. O que vocês fariam? Uma versão mais nova do Laravel resolveria? Porque se eu tiver que ficar fazendo pesquisas, extra curso, para saber o que substituirá determinado compeonente, não será muito produtivo.

Olá, @marcio.

Recomendo a abordagem da instalação da pecl e consecutivamente a instalação ad extensão. Será o caminho mais curto para solucionar seu problema.

Fiquei confuso com a instalação do pecl e acabei conseguindo instalando o laravel mais atual. Obrigado pela ajuda