对一个命令使用不同的 PHP 版本 CLI 可执行文件
2022-08-30 12:33:16
所以我有安装了三个PHP版本的Gentoo盒子(不要介意原因):
-
/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
我想使用作曲家安装Laravel框架:
$ composer create-project laravel/laravel --prefer-dist
然而,这会引发错误,因为Laravel需要PHP>5.5.9,默认解释器是5.4。所以我发出另一个命令:php
$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-dist
这让我更进一步,但随后Laravel的一些安装后命令开始发挥作用,安装崩溃了。composer.json
这是因为命令如下所示:composer.json
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
如您所见,“默认”解释器再次使用!
现在,正确的PHP文件从以下shebang开始:
#!/usr/bin/env php
这是一个很好的功能,因为PHP解释器可以在不同系统上的不同位置下找到。不幸的是,在这种情况下,命令返回它在环境变量中找到的第一个可执行文件的路径。env
$PATH
我怎么可能改变当前的会话环境或执行什么样的技巧,以便执行整个Laravel安装过程命令将调用而不是?php
/usr/bin/php5.6
/usr/bin/php
我不想更改变量或修改文件,例如,或Laravel的CLI实用程序。$PATH
composer
composer.json
artisan
编辑:还假设我想从常规用户帐户执行此操作(即没有root权限)。