gpt4 book ai didi

php - Composer curl 错误 60 : SSL certificate problem: unable to get local issuer certificate

转载 作者:行者123 更新时间:2023-12-04 14:33:54 25 4
gpt4 key购买 nike

我试图让 Composer 在使用代理的远程 Windows 机器上工作,但是在执行 Composer 安装/更新时总是会出现此错误:

[Composer\Downloader\TransportException] curl error 60 whiledownloading https://flex.symfony.com/versions.json: SSL certificateproblem: unable to get local issuer certificate


这是我的 composer.bat:
@echo OFF
:: in case DelayedExpansion is on and a path contains !
setlocal DISABLEDELAYEDEXPANSION
set HTTP_PROXY=<proxyurl>
php "%~dp0composer.phar" %*
显然需要设置代理,如果我删除该行,错误变为:

[Composer\Downloader\TransportException] curl error 28 whiledownloading https://flex.symfony.com/versions.json: Operation timedout after 10000 milliseconds with 0 out of 0 bytes received

composer diag给我这个(使用代理集):
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking HTTP proxy: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: OK
Composer version: 2.0.9
PHP version: 7.4.7
PHP binary path: C:\Program Files\PHP\current\php.exe
OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020
cURL version: 7.69.1 libz 1.2.11 ssl OpenSSL/1.1.1g
zip: extension present, unzip not available
我已经阅读了很多帖子和教程,但没有一个答案对我有用。 (有些只是关于 curl ,它是关闭证书检查的选项,但这对 Composer 不起作用)。这是我尝试过的:
  • http://curl.haxx.se/ca/cacert.pem 下载 cacert.pem或 https://curl.se/docs/caextract.html (不要复制和粘贴,因为有些人说编辑文件会损坏它 - 但这是应该发生的)
  • 本地保存文件
  • 在 php.ini
  • 中激活 openssl
  • 编辑了 php.ini 并为“curl.cainfo”和“openssl.cafile”添加了证书文件的路径(根据一些有所不同的帖子,所以我都尝试了),使用了完整路径和引号,像这样:curl.cainfo="C:\Program Files\PHP\cacert.pem"
  • 将 pem 文件移动到不同的目录以确保没有 Windows 权限会使其无法访问(我还将文件及其目录设置为所有用户都可以访问以确保)
  • 使用 php -r "print_r(openssl_get_cert_locations());"找出默认的证书文件位置(它是“C:\Program Files\Common Files\SSL”),还将证书文件保存在那里

  • 所有这些都不起作用,错误仍然存​​在。
    然后我找到了一篇在 composer.json 中设置存储库并明确设置该存储库的证书文件的帖子,所以我也尝试了它并将其添加到我的 composer.json 中:
    {
    "repositories": [{
    "type": "composer",
    "url": "https://flex.symfony.com",
    "options" : {
    "ssl" : {
    "cafile" : "cacert.pem"
    }
    }
    }]
    }
    文件“cacert.pem”与我的 composer.json 位于同一目录中,现在错误是这样的:

    [Composer\Downloader\TransportException] The"https://flex.symfony.com/packages.json" file could not be downloaded(HTTP/2 404 )


    这并不奇怪,因为尝试通过浏览器访问“https://flex.symfony.com/packages.json”也会给我一个 404。(不知道这是否会突然有所不同“packages.json”无法加载,而证书错误提示“versions.json”,不知道哪个先加载,以及这个错误是否是一个“好”的迹象。)
    这个试错之旅已经持续了好几天,我没有想法,所以任何帮助都非常感谢!

    最佳答案

    我不知道您的问题是否与我刚刚遇到的问题相同。但我通过在 cmd 中执行它来解决它:

    composer config -g -- disable-tls false
    无论如何,我正在使用 wamp。

    关于php - Composer curl 错误 60 : SSL certificate problem: unable to get local issuer certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66276070/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com