Windows PATH 变量不适用于 Composer
Posted
技术标签:
【中文标题】Windows PATH 变量不适用于 Composer【英文标题】:Windows PATH variable not working for Composer 【发布时间】:2022-01-21 10:29:27 【问题描述】:我已经使用安装程序在 Windows 10 上安装了 Composer,但它似乎无法正常工作。当我尝试在控制台中运行composer
时,它会抛出一个错误:
'""' is not recognized as an internal or external command,
operable program or batch file.
我重新启动了我的电脑两次,以管理员身份运行控制台并检查了 PATH 变量。它包含 Composer 安装路径 (C:\ProgramData\ComposerSetup\bin
),但由于某种原因它不起作用。我尝试在 cd 到这个文件夹之后直接运行作曲家,它可以工作,但它不能正常工作。
'where composer' 打印出以下内容:
C:\OpenServer\modules\php\PHP_7.4\composer.bat
C:\ProgramData\ComposerSetup\bin\composer
C:\ProgramData\ComposerSetup\bin\composer.bat
第一个路径是指安装PHP的文件夹,第二个是可执行文件本身
如果我尝试运行 'C:\ProgramData\ComposerSetup\bin\composer',它会按预期工作,因此 Composer 本身已正确安装
如何让 Composer 的 PATH 变量正常工作?
【问题讨论】:
也许你在 PATH 的其他地方有一个composer
可执行文件。如果你在命令提示符下运行where composer
,你会得到什么?
该文件在哪里,它的确切名称是什么?在 MS Windows 中,扩展名通常对文件“工作”的方式很重要。另外,重点是,如果它是“.php”,您需要通知操作系统这些文件应该使用 PHP 执行以及该可执行文件在哪里。顺便说一句:确保您可以使用其完整路径和/或将其作为参数传递给解释器来实际运行它。作为这里的新用户,也请带上tour并阅读How to Ask。
该文件被称为 composer
,它不需要 php 来运行它,因为当我在 C:\ProgramData\ComposerSetup\bin 时该命令运行良好。所以,全名是:C:\ProgramData\ComposerSetup\bin\composer(没有文件扩展名,我查过)
where composer
返回以下内容: C:\OpenServer\modules\php\PHP_7.4\composer.bat C:\ProgramData\ComposerSetup\bin\composer C:\ProgramData\ComposerSetup\bin\ composer.bat 其中之一是可执行文件的路径,所以我认为它应该可以正常工作,但它没有
'""' is not recognized...
是一个非常不寻常的错误消息。你刚刚在 cmd.exe 中输入了composer
吗?
【参考方案1】:
我删除了C:\OpenServer\modules\php\PHP_7.4\composer.bat
文件,它运行良好。
此文件夹是 PHP 安装文件夹,它包含我之前安装的本地服务器。出于某种原因,它有一个损坏的composer.bat
,当我安装 Composer 时,我检查了“将 PHP 文件夹添加到 PATH 变量”。这就是为什么当我尝试运行 composer
时,它运行了损坏的文件并抛出了一个奇怪的错误。
感谢 Álvaro González 帮助我解决这个问题!
【讨论】:
以上是关于Windows PATH 变量不适用于 Composer的主要内容,如果未能解决你的问题,请参考以下文章
php composer.phar 更新不适用于 Symfony 安装
XML <!ENTITY e SYSTEM "/path/to/file"> 不适用于 PHP SimpleXMLElement