Я пытаюсь установить композитор через php, как описано на их сайте.
php -r "readfile('https://getcomposer.org/installer');" | php
Но он отображает следующую ошибку:
$ php -r "readfile('https://getcomposer.org/installer');" | php
output is not a tty
input is not a tty
Я нахожусь в Windows 7 и использую git bash для выполнения этой команды. В командной строке Windows, он работает нормально. Эта проблема возникает только когда я запускаю эту команду из git bash 2.6.2-64bit.
Кстати, я установил композитор для Windows, и это работает нормально. Но я не могу скачать composer.phar таким образом. Как я могу исправить эту проблему?
Это может быть PATH или проблема с кодировкой:
Кажется, что
git ls-remote origin
запустить из только что построенного и установленного MinGW Git не в состоянии выводить что-либо, иgit ls-remote origin | cat
(уловка, извлеченная из работы со старыми хитростями MSys / MinGW), говорит только:output is not a tty
(код выхода — 127, предполагая, что некоторый исполняемый файл не был найден, но очень трудно сказать, какой именно, потому что даже не отображаются отладочные операторы печати для stderr; кажется, что в случае сбоя или die (), стдерр не покраснел)
выпуск 519 даже предлагает unalias winpty
unalias $(alias | grep winpty | cut -d"=" -f1 | cut -d" " -f2)
Но:
Нет, мы не можем просто отказаться от winpty. PHP может работать в интерактивном режиме, то есть для него требуется соответствующая консоль Win32. Запуск PHP без winpty в MinTTY не обеспечил бы этот экземпляр консоли, оставив вам, казалось бы, не отвечающий терминал.
Увидеть ГИТ-для-окон / встроенный дополнительный @ 44ed99b, # 399 а также # 400 чтобы понять, какой хаос вы бы совершили, просто удалив эти псевдонимы.
Так что сейчас консоль bash не совместима с выполнением php
сквозная труба (как вторая | php
может не выиграть от winpty
, который необходим, когда программе требуется консоль Win32 для интерактивного использования).
Пе указывает на то в комментариях:
Если вы используете C: `Program Files \ Git \ bin \ bash.exe
instead of
C: \ Program Files \ Git \ git-bash.exe`, тогда команда работает нормально.
Я использую это в сочетании с ConsoleZ без проблем
Это, вероятно, потому что bash.exe
не использует winpty
, вопреки git-bash.exe
,
Ответ VonC является правильным, и чтобы помочь другим в будущем, я хочу предложить более наглядное решение.
Теперь вы должны увидеть командную строку.
Перейдите в каталог вашего проекта PHP и установите Composer.
$ cd C: \ path \ to \ your \ project
$ curl -sS https://getcomposer.org/installer | PHP
$ ls
Файл composer.phar
теперь виден в корне проекта.
Установите пакет с композитором.
$ php composer.phar требует некоторого пакета, который вы хотите установить