Verwenden Sie eine andere ausführbare PHP-Version der CLI für einen Befehl

So habe ich Gentoo-Box mit drei PHP-Versionen installiert (egal aus welchen Gründen):

/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

Ich möchte installierenLaravel framework using composer:

$ composer create-project laravel/laravel --prefer-dist

Dies löst jedoch einen Fehler aus, da Laravel PHP> 5.5.9 und den Standardwert @ benötigphp dolmetscher ist 5.4. Also gebe ich einen weiteren Befehl aus:

$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-dist

Dies bringt mich noch einen Schritt weiter, aber dann einige Post-Install-Befehle von Laravel'scomposer.json kommt ins Spiel und die Installation stürzt ab.

Das liegt an der Tatsache, dasscomposer.json Befehle sehen so aus:

"post-install-cmd": [
    "php artisan clear-compiled",
    "php artisan optimize"
],

Wie Sie sehen, wird der "Standard" -Interpreter wieder verwendet!

Jetzt beginnen richtige PHP-Dateien mit folgendem Wortlaut:

#!/usr/bin/env php

Dies ist eine nette Funktion, da sich der PHP-Interpreter auf verschiedenen Systemen an verschiedenen Orten befindet. Leider in diesem Fallenver Befehl @ gibt den Pfad zur ersten ausführbaren Datei zurück, die er in @ finde$PATH Umgebungsvariable.

Wie kann ich möglicherweise die aktuelle Sitzungsumgebung ändern oder welche Art von Trick für die Ausführung des gesamten Laravel-Installationsprozesses ausführen?php Befehl würde @ aufruf/usr/bin/php5.6 Anstatt von/usr/bin/php?

Ich will nicht ändern $ PATH Variable oder ändere Dateien wiecomposer, composer.json oder Laravels CLI-Dienstprogrammartisan.

Bearbeiten: gehe auch davon aus, dass ich dies von einem normalen Benutzerkonto aus tun möchte (d. H. Ohne Root-Berechtigungen).

Antworten auf die Frage(14)

Ihre Antwort auf die Frage