2013-03-28 6 views
18

Как заставить композитора использовать более новую версию php i, которую я установил? Я загрузил и использую php 5.4 на всех моих локальных серверах, но когда я загружаю композитор, он указывает на версию #!/Usr/local/bin/env моего mac, которая равна 5.3.15. Я попытался отредактировать исполняемый файл композитора и изменить используемый php, но он сломал исполняемый файл.композитор для использования более новой версии php

Я пытаюсь использовать композитор для установки Laravel, и из-за этого вы скачиваете неправильную версию.

Это то, на что похожа вершина моего исполнятеля композитора, но после этого есть несколько странных символов ниже.

#!/usr/bin/env php 
<?php 
/* 
* This file is part of Composer. 
* 
* (c) Nils Adermann <[email protected]> 
*  Jordi Boggiano <[email protected]> 
* 
* 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 для 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" 
} 
+0

, что это ваш 'выход -V' PHP? – Rob

+0

хорошо, что я aliased «php» в моем bash_profile, чтобы указать на мою новую версию, поэтому он говорит мне, что это 5.4.11 – David

+0

Итак, если вы запустите 'php composer.phar laravel', он не использует php 5.4.11? – Rob

ответ

12

я нашел проблему. Я переместил файл 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 я хочу использовать. Надеюсь, другие найдут это полезным.

+1

'#!/Usr/bin/env php' - эта строка указывает используемую версию PHP. Проверьте «env --help» на командной строке для введения, вы также можете прочитать man-страницу с «man env». – hakre

+2

Возможно, вам потребуется запустить 'source ~/.bash_profile', чтобы перезагрузить ваши псевдонимы, прежде чем они будут работать –

5

По умолчанию композитор на системах * nix использует двоичный/исполняемый файл PHP, указанный средой. Вы можете видеть, что в первой строке, которая является shebang:

#!/usr/bin/env php 

Вы можете сказать оболочке наебнуться более конкретной версии PHP вместо этого, например:

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

В системах Windows, если вы используете в настройке композитора вы можете указать двоичный файл PHP, а затем настройка изменит среду в соответствии с этими потребностями. Но вы также можете легко переписать пакетный файл -или- настроить операционную систему Windows для выполнения .phar-файлов с определенным двоичным кодом PHP.

+0

для пользователей Windows, обновите или понизите загрузку здесь [ссылка] (http://windows.php.net/download/). скопируйте его в ваш/wamp/bin/php. Затем перейдите на панель управления -> Система и безопасность -> система -> расширенные параметры системы -> переменные окружения, найдите «путь», отредактируйте ее, найдите «wamp/bin/php/(измените версию, которую вы только что закончили загружать). перезагрузите cmd и попробуйте использовать композитор еще раз. Работал для меня .. надеюсь, что это поможет кому-то тоже –

13

Если вы не заботиться о постоянных параметрах ниже команды работали для меня:

/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} может быть очень полезным. Ex: which composer дал ниже вывод, который я использовал в команде выше:

/usr/local/bin/composer 
+0

хочу, чтобы я смог проголосовать за это 10+ - спасибо! – craigh

+0

рад, что это помогло! :) – div

+0

Я использую MAMP, и композитор продолжал пытаться использовать OSX Это помогло мне за что-то быстрое – Ronnie

Смежные вопросы