我安装了三个 PHP 版本的 Gentoo 盒子(不管原因):
1./usr/bin/php->/usr/lib64/php5.4/bin/php
2./usr/bin/php5.5->/usr/lib64/php5.5/bin/php
3./usr/bin/php5.6->/usr/lib64/php5.4/bin/php
我想使用composer安装Laravel框架:
$ 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"
],
如您所见,再次使用“默认”解释器!
现在,正确的 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之类的文件。
编辑:还假设我想从普通用户帐户(即没有 root 权限)执行此操作。
也许你可以尝试修复环境!
$ php -v
PHP 5.4.x (cli) ...
$ set PATH="/usr/lib64/php5.6/bin:$PATH"
$ php -v
PHP 5.6.x (cli) ...
或者,如果您不想修改 shell 会话的 PATH,则可以仅针对当前命令进行更改:
$ php -v
PHP 5.4.x (cli) ...
$ env PATH="/usr/lib64/php5.6/bin:$PATH" php -v
PHP 5.6.x (cli) ...
$ php -v
PHP 5.4.x (cli) ...