/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
$ composer create-project laravel/laravel --prefer-dist
然而,这会导致错误,因为Laravel要求PHP版本>5.5.9,而默认的php
解释器是5.4。所以我发出了另一个命令:
$ /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"
],
如您所见,"default" 解释器再次被使用!
现在,正确的 PHP 文件应该以以下 shebang 开头:
#!/usr/bin/env php
这是一个很好的功能,因为PHP解释器在不同系统上可以找到不同的位置。 不幸的是,在这种情况下,
env
命令返回路径到$PATH
环境变量中找到的第一个可执行文件。我应该如何更改当前会话环境或者使用什么技巧,以便在整个Laravel安装过程中,
php
命令将调用/usr/bin/php5.6
而不是/usr/bin/php
?我不想更改
$PATH
变量或修改像composer
、composer.json
或Laravel的CLI实用程序artisan
这样的文件。
编辑:还要假设我想从常规用户帐户(即没有根权限)执行此操作。
PHP_BIN
环境变量,否则默认为/usr/bin/php
。 (另请参见 在 Bash 中,何时使用别名,何时编写脚本,何时编写函数?)-- 此外,一旦安装了三个以上的版本,您就成为了一个收藏家。 - marioalias
命令:遗憾的是,这并不起作用。可能是因为当php
被composer
或者/usr/bin/env
调用时,alias
命令不起作用。 - roomcays