Композитор для использования более новой версии php
Как заставить композитора использовать более новую версию php i, которую я установил? Я загрузил и использую php 5.4 на всех моих локальных серверах, но когда я загружаю композитор, он указывает на мою версию по умолчанию #!/Usr/local/bin/env, которая равна 5.3.15. Я попытался отредактировать исполняемый файл композитора и изменить используемый 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"
}
Ответы
Ответ 1
Если вам не нужны постоянные настройки, ниже команда работала для меня:
/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
Ответ 2
Я нашел проблему. Я переместил файл 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 я хочу использовать. Надеюсь, другие найдут это полезным.
Ответ 3
По умолчанию композитор на системах * nix использует двоичный/исполняемый файл PHP, указанный средой. Вы можете видеть, что в первой строке находится shebang:
#!/usr/bin/env php
Вы можете сказать, что оболочка нападает на более конкретную версию PHP, например:
#!/usr/local/php5/bin/php
В системах Windows, если вы используете настройку композитора, вы можете указать двоичный файл PHP, а затем настройте среду, чтобы соответствовать этим требованиям. Но вы также можете легко переписать пакетный файл -или- настроить операционную систему Windows для выполнения файлов .phar с определенным двоичным кодом PHP.