我如何让作曲家使用我安装的更新版本的php?我已下载并在所有本地服务器上使用php 5.4,但是当我下载作曲家时,它指向我的mac的默认#!/ usr / local / bin / env版本,即5.3.15。我尝试编辑composer可执行文件并更改使用的php,但它破坏了可执行文件。
我正在尝试使用composer来安装Laravel,并因此而下载了错误的版本。
这就是我的作曲家可执行文件的顶部看起来像但是下面有一堆奇怪的字符。
#!/usr/bin/env php
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view
* the license that is located at the bottom of this file.
*/
Phar::mapPhar('composer.phar');
define('COMPOSER_DEV_WARNING_TIME', 1366931166);
require 'phar://composer.phar/bin/composer';
composer.json for laravel project
{
"require": {
"laravel/framework": "4.0.*@dev"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-update-cmd": "php artisan optimize"
},
"minimum-stability": "dev"
}
答案 0 :(得分:17)
如果你不关心永久设置,下面的命令对我有用:
/Applications/MAMP/bin/php/php5.6.27/bin/php /usr/local/bin/composer install
语法是:
{PATH TO YOUR PHP VERSION} {PATH TO COMPOSER EXECUTABLE} {COMPOSER COMMAND}
要了解可执行文件路径:which {EXECUTABLE}
非常有用。
例如:which composer
给出了我在上面命令中使用的以下输出:
/usr/local/bin/composer
答案 1 :(得分:13)
为了清理,我做了以下事情:
我将composer.phar留在用户个人资料的根目录
/Users/davidadams/composer.phar
然后我打开了我的.bash_profile并添加了以下别名
alias composer='/usr/local/php5/bin/php /Users/davidadams/composer.phar'
这样我可以全局使用它,我可以定义我想要使用的php版本。希望其他人会觉得这很有用。
答案 2 :(得分:5)
默认情况下,* nix系统上的composer使用环境指定的PHP二进制/可执行文件。您可以在第一行看到shebang:
#!/usr/bin/env php
你可以告诉shell反对更具体的PHP版本,例如:
#!/usr/local/php5/bin/php
在Windows系统上,如果使用编写器设置,则可以指定PHP二进制文件,然后设置将更改环境以满足这些需求。但您也可以轻松地重写批处理文件 - 或者 - 配置Windows操作系统以使用特定的PHP二进制文件执行.phar文件。
答案 3 :(得分:0)
sudo vim ~/.bash_profile
添加
export PATH="/Applications/MAMP/bin/php/php7.3.1/bin:$PATH"
在上述路径中,我有php 7.3.1,所以将其更改为您拥有的任何路径
然后按Esc键,然后:wq