Composer 安装程序脚本未正确运行 [退出代码 1]

Posted

技术标签:

【中文标题】Composer 安装程序脚本未正确运行 [退出代码 1]【英文标题】:The Composer installer script did not run correctly [exit code 1] 【发布时间】:2020-06-09 23:29:46 【问题描述】:

我尝试通过从 getcomposer 下载可执行的 Composer-Setup.exe 在 Windows 10 中安装 Composer-php。在安装过程中提示选择我想使用的命令行 PHP 时,我输入了 PHP C:\WinNMP\bin\PHP\64bit-php-7.4\php.exe 的路径

但我收到以下错误:

Script Output: PHP Warning: realpath(): open_basedir restriction in effect. 

文件(C:\Users\admin\AppData\Local\Temp\is-1KBL9.tmp) 不在允许的路径内:(c:/winnmp) 在 C:\Users\admin\AppData\第 655 行的 Local\Temp\is-1KBL9.tmp\installer.php PHP 警告:is_writeable():open_basedir 限制生效。文件(C:\Users\admin\AppData\Local\Temp\is-1KBL9.tmp)不在允许的路径内:(c:/winnmp)在 C:\Users\admin\AppData\Local\Temp \is-1KBL9.tmp\installer.php 在第 657 行

【问题讨论】:

【参考方案1】:

我禁用了防火墙并解决了这个作曲家问题:

脚本输出: 无法下载“https://getcomposer.org/versions”文件:php_network_getaddresses:getcomposer.org 的 getaddrinfo 失败:不知道这样的主机。

【讨论】:

请分享更多细节。您面临的错误消息看起来与问题中的完全不同【参考方案2】:

在 90% 的情况下,问题出在 Windows 防火墙

安装时关闭 Windows Defender 防火墙

【讨论】:

工作,非常感谢【参考方案3】:

您的php.ini 似乎对使用open_basedir 选项可访问的目录设置了限制:

将 PHP 可以访问的文件限制在指定的目录树中,包括文件本身。 [...]

当脚本尝试访问文件系统时,例如使用 include 或 fopen(),会检查文件的位置。

您可以运行 php -i 以找出您的 php.ini 所在的位置,然后禁用/修改该选项,例如确保C:\Users\admin\AppData\Local\Temp 是可访问的。

【讨论】:

成功了,谢谢!我刚刚在 php.ini 中注释了 #open_basedir = "c:/winnmp" 并重新安装了 Composer-php

以上是关于Composer 安装程序脚本未正确运行 [退出代码 1]的主要内容,如果未能解决你的问题,请参考以下文章

安装 Composer - 内部错误

未正确退出应用程序时未关闭 OutputStream 文件

尽管正确打印出所有输出,但程序未在 Java 中以退出代码 0 结束

Shell 脚本在失败时未记录 Java 退出状态

如何正确使用 Composer 安装 Laravel 扩展包

如何简单快速的使用composer