【问题标题】:Latest Composer version not pulling Laravel最新的 Composer 版本不拉 Laravel
【发布时间】:2016-06-30 10:18:16
【问题描述】:

Composer 的最新版本没有拉 Laravel,我认为这可能是因为 Composer 添加了新的 secure_http 功能,用于从 Packagist 下载,而 Laravel Packagist 是在 HTTP 中。这就是我的想法,所以我需要解决方案。以前版本的 Composer 做得很好。 当我尝试安装 Laravel 安装程序时,我的终端上显示的错误是:

解码响应失败:zlib_decode(): 数据错误以降级模式重试,查看https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode 了解更多信息您的配置不允许连接到http://packagist.org。有关详细信息,请参阅https://getcomposer.org/doc/06-config.md#secure-httphttp://packagist.org 无法完全加载,包信息是从本地缓存加载的,可能已过期 安装失败,正在将 ./composer.json 还原为其原始内容。 [Composer\Downloader\TransportException] 您的配置不允许连接到http://packagist.org。详情请见https://getcomposer.org/doc/06-config.md#secure-http

【问题讨论】:

    标签: php laravel composer-php


    【解决方案1】:

    我遇到了同样的问题。在这里找到解决方案:Reddit Discussion of the issue

    基本上,您有两种选择:

    • 通过运行恢复到以前的版本

      self-update --rollback

    • 或者,通过运行来降级作曲家

      composer config -g secure-http false

    【讨论】:

    • 是的,你是对的。我得到了第一个解决方案并以这种方式工作,实际上我下载了以前版本的 Composer 并将 mod 更改为 755 并粘贴到 /usr/local/bin/ 目录中。但是您提供的第二个解决方案我尝试在 composer.phar 文件中进行编辑,但不知何故我遇到了错误。好的,谢谢你的帮助。我会尝试第二个。
    • 当我尝试恢复到以前的版本时,它会吐出这个错误:[InvalidArgumentException] 命令“self-update”未定义。
    【解决方案2】:

    最后这个救了我,

    sudo composer self-update
    
    sudo composer clear-cache
    
    sudo composer config -g secure-http false
    
    sudo composer update --no-scripts
    

    终于搞定了!

    【讨论】:

      【解决方案3】:

      运行时(通过运行降级作曲家)

      composer config -g secure-http false
      

      我还是有例外

      Fatal error: Uncaught Error: Call to undefined method Composer\Package\RootPackage::getConfig() ...
      

      我最终成功使用了额外的 --no-plugins

      composer config -g secure-http false --no-plugins
      composer self-update --no-plugins
      

      希望这对任何人都有帮助:)

      【讨论】:

        【解决方案4】:

        我建议使用以下命令启用 openssl:

        composer config -g -- disable-tls false

        然后你还需要在php.in中激活它

        打开 php.ini 并搜索php_openssl,你最终会变成这样的extension=php_openssl.dll

        php_openssl.dll 文件位于 php 的 ext 目录中,因此如果您更改了 php 目录并出现类似

        的错误
        PHP Warning:  PHP Startup: Unable to load dynamic library 
        'C:\php\ext\php_openssl.dll' - The specified module could not be found. 
        in Unknown on line 0
        

        您需要将extension=php_openssl.dll 设置为extension="your php direcroty"\ext\php_openssl.dll

        【讨论】:

          最近更新 更多