Como faço para que / bin / bash execute a versão desejada do php no Composer? [duplicado]

Oct 04 2020
php -v

dá 7,4

which php

dá 7,4

php test.php com o seguinte arquivo de teste:

<?php
echo phpversion();
?>

dá 7,4

Mas quando executo o script de instalação / inicialização do Craft CMS, ele está executando o arquivo Bootup.php com PHP 5.6.

Sob quais circunstâncias presumivelmente um script bash terá como padrão uma versão antiga do php? Suspeito que isso possa ser uma variável de ambiente no Composer. E como faço para executá-lo usando o desejado?

Peço desculpas se estou fazendo a pergunta xy .

Respostas

samerivertwice Oct 05 2020 at 02:06

Ok, então acontece que os arquivos php no composer têm a seguinte estrutura:

#!/usr/bin/env php

Por alguma razão que não entendo totalmente, isso tem o efeito de ignorar ALIAS e procurar o primeiro php em $ PATH.

Então a solução que optei foi encontrar o primeiro php em $ PATH, renomeá-lo como php2 e então usando ln -seu fiz um link nessa pasta chamado php e apontei para a versão binária correta do php, no meu casoln -s /opt/plesk/php/7.4/bin/php php

Composer e Craft agora estão rodando com a versão php desejada.