composer使用更新版本的php


composer to use newer version of php

如何让composer使用我安装的php的新版本?我已经下载并在所有本地服务器中使用php5.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"
}

如果您不喜欢永久设置,下面的命令对我有效:

/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

我发现了问题。我把composer.phar文件移到了我的/usr/local/bin/目录中,无论我做什么,它总是使用5.3.15。我从bin中删除了可执行文件,重新下载了.par,并将其移动到我的项目根目录中,然后运行"phpcomposer.phar install",看起来效果不错。

为了清理问题,我做了以下操作:

我把composer.phar留在了我的用户档案的根目录

/Users/davidadams/composer.phar

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

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

这样,我就可以在全局范围内使用它,并且我可以定义要使用的php版本。希望其他人会觉得这很有用。

默认情况下,*nix系统上的composer使用环境指定的PHP二进制/可执行程序。你可以在第一行看到,这是shebang:

#!/usr/bin/env php

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

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

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

sudo vim ~/.bash_profile

添加

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

在上面的路径中,我有php7.3.1,所以将其更改为您有的任何路径

然后按Esc,然后:wq