O Composer diz “requirements could not be resolved”: versão do PHP e extensões em falta

O Composer instala bibliotecas e, antes de o fazer, confere se o PHP onde corre cumpre o que cada uma exige. A mensagem “Your requirements could not be resolved to an installable set of packages” quer dizer que o PHP que o Composer vê não é o que o projecto pede: ou a versão é antiga demais, ou falta uma extensão. Quase sempre o problema é o Composer estar a usar outro PHP que não o do site. Como obter o Composer está em o Composer numa conta de hospedagem.

Ler a mensagem

O que a mensagem diz Quer dizer
requires php ^8.1 but your php version (7.4.x) does not satisfy that requirement A versão do PHP que o Composer usa é mais antiga do que a que o projecto pede.
requires ext-intl * but it is missing from your system Falta a extensão (aqui, a intl) no PHP que o Composer usa.
Composer detected issues in your platform Já instalou, mas ao correr o site descobriu que o PHP do site não cumpre o que as bibliotecas exigem.

Resolver, passo a passo

1 Veja que PHP o Composer está a usar. No Terminal, php -v. O PHP da linha de comandos pode ser outro, diferente do que escolheu para o site no Select PHP Version. Veja quando o php -v mostra outra versão.
2 Corra o Composer com o PHP certo, pelo caminho completo: /opt/alt/php82/usr/bin/php composer.phar install (troque o 82 pela versão que quer, sem ponto).
3 Se falta uma extensão, ligue-a para essa versão em Select PHP Version. Veja ligar ou desligar uma extensão do PHP. Para ver o que o Composer vê, corra php composer.phar show --platform.
4 Se a versão do PHP do site é mesmo antiga, suba-a (com cuidado e um teste) ou use versões mais antigas das bibliotecas. Veja mudar a versão do PHP sem partir o site.
5 Se o ficheiro composer.lock foi criado noutra máquina, pode exigir versões mais novas do que o seu servidor aguenta. Em vez de forçar, volte a gerar o ficheiro no seu computador, indicando a versão de destino em config.platform.php do composer.json, e envie o resultado.
Evite --ignore-platform-reqs como solução. A opção cala o Composer, mas a biblioteca continua a exigir a versão que o PHP não tem, e o erro passa a aparecer no site em vez de na instalação. Serve para um ensaio, não para produção.
As bibliotecas que o Composer instala são suas. O nosso suporte olha para o servidor (versão do PHP, extensões, limites), mas não repara o código das bibliotecas: o limite está em até onde vai o nosso suporte. Para uma aplicação inteira, veja pôr uma aplicação Laravel a funcionar.

Mensagem de requisitos que não percebe? Envie-nos o texto completo e a pasta do projecto.

Abrir um pedido de suporte

VEJA TAMBÉM

Composer numa conta de hospedagem: instalar e correr

Que versão do PHP deve usar no seu site

Ligar ou desligar uma extensão do PHP

Pôr uma aplicação Laravel a funcionar

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?