Use executável CLI da versão PHP diferente para um comando
Então, eu tenho o Gentoo box com três versões do PHP instaladas (não importa os motivos):
/usr/bin/php
->/usr/lib64/php5.4/bin/php
/usr/bin/php5.5
->/usr/lib64/php5.5/bin/php
/usr/bin/php5.6
->/usr/lib64/php5.4/bin/php
Eu quero instalarFramework Laravel usando o compositor:
$ composer create-project laravel/laravel --prefer-dist
No entanto, isso gera um erro porque o Laravel requer PHP> 5.5.9 e o padrãophp
intérprete é5.4. Então, eu emito outro comando:
$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-dist
Isso me leva um passo adiante, mas alguns comandos de pós-instalação do Laravelcomposer.json
entra em jogo e a instalação falha.
Isso se deve ao fato de quecomposer.json
comandos são assim:
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
Como você pode ver, o intérprete "padrão" é usado novamente!
Agora, os arquivos PHP adequados começam com o seguinte shebang:
#!/usr/bin/env php
Esse é um recurso interessante, pois o intérprete PHP pode ser encontrado em diferentes locais em diferentes sistemas. Infelizmente, neste casoenv
O comando retorna o caminho para o primeiro executável encontrado em$PATH
variável ambiental.
Como eu poderia alterar o ambiente de sessão atual ou que tipo de truque executar para a execução de todo o processo de instalação do Laravelphp
comando invocaria/usr/bin/php5.6
ao invés de/usr/bin/php
?
Não quero mudarVariável $ PATH ou modificar arquivos comocomposer
, composer.json
ou o utilitário CLI do Laravelartisan
.
Editar: também suponha que eu queira fazer isso a partir de uma conta de usuário comum (ou seja, sem permissões de root).