Как заставить композитора использовать более новую версию php, которую я установил? Я загрузил и использую php 5.4 на всех моих локальных серверах, но когда я загружаю композитор, он указывает на версию #! / Usr / local / bin / env моего mac, которая равна 5.3.15. Я попытался отредактировать исполняемый файл композитора и изменить используемый php, но он сломал исполняемый файл.
Из-за этого я пытаюсь использовать композитор для установки 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';
композитор.json для проекта laravel
{ "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. Я удалил исполняемый файл из моего бункера и перезапустил .phar и переместил его в свой проект root и запустил «php composer.phar install», и похоже, что это сработало.
Чтобы очистить вещи, я сделал следующее:
Я оставил composer.phar в корне моего профиля пользователя
/Users/davidadams/composer.phar
Затем я открыл свой .bash_profile и добавил следующий псевдоним
alias composer='/usr/local/php5/bin/php /Users/davidadams/composer.phar'
Таким образом, он доступен мне по всему миру, и я могу определить, какую версию PHP я хочу использовать. Надеюсь, другие найдут это полезным.
По умолчанию композитор на системах * nix использует двоичный / исполняемый файл PHP, указанный средой. Вы можете видеть, что в первой строке это shebang :
#!/usr/bin/env php
Вы можете сказать, что оболочка нападает на более конкретную версию PHP, например:
#!/usr/local/php5/bin/php
В системах Windows, если вы используете настройку композитора, вы можете указать двоичный файл PHP, а затем настроить, чтобы изменить среду для соответствия этим требованиям. Но вы также можете легко переписать пакетный файл -или- настроить операционную систему Windows для выполнения .phar-файлов с определенным двоичным кодом PHP.