21

我如何让作曲家使用我安装的更新版本的 php?我已经下载并在所有本地服务器中使用 php 5.4,但是当我下载 composer 时,它指向我的 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';

用于 laravel 项目的 composer.json

{
    "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"
}
4

4 回答 4

16

如果您不关心永久设置,以下命令对我有用:

/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
于 2016-12-24T16:12:19.817 回答
13

我发现了问题。我将 composer.phar 文件移动到我的 /usr/local/bin/ 目录中,无论我做什么,它始终使用 5.3.15。我从我的 bin 中删除了可执行文件并重新下载了 .phar 并将其移至我的项目根目录并运行“php composer.phar install”,它看起来很有效。

为了清理东西,我做了以下事情:

我将 composer.phar 留在了我的用户配置文件的根目录

/Users/davidadams/composer.phar

然后我打开了我的 .bash_profile 并添加了以下别名

alias composer='/usr/local/php5/bin/php /Users/davidadams/composer.phar'

这样我就可以在全球范围内使用它,我可以定义我想要使用的 php 版本。希望其他人会发现这很有用。

于 2013-03-28T03:12:55.690 回答
5

默认情况下,*nix 系统上的 composer 使用环境指定的 PHP 二进制/可执行文件。您可以在第一行看到shebang

#!/usr/bin/env php

您可以告诉 shell 使用更具体的 PHP 版本,例如:

#!/usr/local/php5/bin/php

在 Windows 系统上,如果您使用 composer 设置,您可以指定 PHP 二进制文件,然后设置将更改环境以满足这些需求。但是您也可以轻松地重写批处理文件 - 或 - 配置 Windows 操作系统以使用特定的 PHP 二进制文件执行 .phar 文件。

于 2013-03-29T11:46:24.007 回答
0
sudo vim ~/.bash_profile

添加

export PATH="/Applications/MAMP/bin/php/php7.3.1/bin:$PATH"

在上面的路径中,我有 php 7.3.1,所以将其更改为您拥有的任何路径

然后按 Esc 然后 :wq

于 2020-01-12T07:40:36.417 回答