我试图通过php安装composer php,如他们的wesite中所述。
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运行这个命令时。
顺便说一句,我已经安装了composer php的Windows,并且工作正常。 但是我不能以这种方式下载composer.phar。 我该如何解决这个问题?
它可能是一个PATH或编码问题:
似乎是
git ls-remote origin
,从新建的并且安装好的MinGW Git运行,无法输出任何东西,而git ls-remote origin | cat
git ls-remote origin | cat
(从与MSys的/ MinGW的怪癖工作中学到的一个技巧)只说:output is not a tty
(退出代码是127,表明一些可执行文件没有找到,但很难说哪一个是因为没有显示调试打印语句到stderr;看来,如果崩溃或die(),stderr不刷新)
问题519甚至建议unalias winpty
unalias $(alias | grep winpty | cut -d"=" -f1 | cut -d" " -f2)
但:
不,我们不能简单地放弃winpty。 PHP可以交互式运行,即它需要一个适当的Win32控制台。 在MinTTY中运行没有winpty的PHP将无法提供该控制台实例,从而使您看起来没有响应的终端。
请参阅git-for-windows / build-extra @ 44ed99b , #399和#400,以了解通过简单地删除这些别名会造成的破坏。
所以现在,bash控制台与通过管道执行php
不兼容(因为第二个| php
可能不会受益于winpty
,当程序需要Win32控制台进行交互使用时,这似乎是需要的)。
Peh 在评论中指出 :
如果使用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需要一些包,你想要安装