composer 命令不起作用 - PHP 警告:Phar::mapPhar

composer command not work - PHP Warning: Phar::mapPhar

我不能运行 composer 命令。我正在使用 windows cmd。

在 C:\ProgramData\ComposerSetup\bin 中,我可以做到 php composer.phar 并且它有效。

但是如果 composercomposer.bat,我得到这个:

 PHP Warning:  Phar::mapPhar(/cygdrive/c/ProgramData/ComposerSetup/bin/c:\ProgramData\ComposerSetup\bin\composer.phar): failed to open stream: No such file or directory in /cygdrive/c/ProgramData/ComposerSetup/bin/c:\ProgramData\ComposerSetup\bin\composer.phar on line 23
PHP Fatal error:  Uncaught exception 'PharException' with message 'unable to open phar for reading "/cygdrive/c/ProgramData/ComposerSetup/bin/c:\ProgramData\ComposerSetup\bin\composer.phar"' in /cygdrive/c/ProgramData/ComposerSetup/bin/c:\ProgramData\ComposerSetup\bin\composer.phar:23
Stack trace:
#0 /cygdrive/c/ProgramData/ComposerSetup/bin/c:\ProgramData\ComposerSetup\bin\composer.phar(23): Phar::mapPhar('composer.phar')
#1 {main}
  thrown in /cygdrive/c/ProgramData/ComposerSetup/bin/c:\ProgramData\ComposerSetup\bin\composer.phar on line 23

怎么了?

我在路径中使用了 cygwin php (cygwin/bin)。

如果我使用新的 php 安装,它会起作用。但我想在我的道路上保持 "cygwin/bin"。

找到了!

正在删除路径中的 "c:\cygwin64\bin"。 在路径中添加新的 php 安装:"c:\php"

添加新系统变量:"CYGWIN_HOME",值为 c:\cygwin64.

这样,使用 windows cmd,composer 将使用路径中的 php ("c:\php").

并且使用 cygwin,作曲家将在 "cygwin\bin" 中使用 php(因为 CYGWIN_HOME 变量)。