问题描述
我必须运行 composer install 命令,但我发现以下错误:(我已经从 xampp 取消注释 openssl 扩展)
问题 1
- docusign/click-client 被锁定到 v1.0.0 版本并且没有请求更新这个包。
- docusign/click-client v1.0.0 需要 ext-curl * -> 您的系统中缺少它。安装或启用 PHP 的 curl 扩展。
问题 2
- docusign/esign-client 被锁定到 v6.0.0-rc 版本并且没有请求更新这个包。
- docusign/esign-client v6.0.0-rc 需要 ext-curl * -> 它从您的系统中丢失。安装或启用 PHP 的 curl 扩展。
问题 3
- docusign/rooms-client 被锁定到 v1.1.0-rc 版本并且没有请求更新这个包。
- docusign/rooms-client v1.1.0-rc 需要 ext-curl * -> 它从您的系统中丢失。安装或启用 PHP 的 curl 扩展。
问题 4
- mashape/unirest-PHP 被锁定到 v3.0.4 版本并且没有请求更新这个包。
- mashape/unirest-PHP v3.0.4 需要 ext-curl * -> 您的系统中缺少它。安装或启用 PHP 的 curl 扩展。
当我运行命令时
composer update
[运行时异常]
You must enable the openssl extension in your PHP.ini to load information from https://repo.packagist.org
解决方法
您需要在 PHP.ini 配置中启用 curl 并安装 curl-ca-bundle.crt
每个namecheap:
CA 包是一个包含根证书和中间证书的文件。最终实体证书与 CA 包一起构成了证书链。
需要该链来提高证书与网络浏览器和其他类型客户端的兼容性,以便浏览器识别您的证书并且不会出现安全警告。
这是你需要做的:
- 下载 curl cacert.pem 文件。听起来您正在使用 Windows。将此下载的文件重命名为
curl-ca-bundle.crt
。 - 将此重命名的文件移动/复制到
C:\xampp\apache\bin\
文件夹中。 - 打开 XAMPP,在 Apache 菜单列表中,单击配置,然后选择编辑 PHP.INI
- 使用 ctrl+f 并搜索 curl。
- 您应该会在“动态扩展”部分下看到
;extension=curl
。删除前面的分号以启用卷曲扩展。 - 搜索下一个条目,您应该会看到一个
[ Curl ]
部分,该部分指定了此 ca-bundle.crt 文件所在的位置。填写上面指定的位置,使您的条目看起来像这样:curl.cainfo="C:\xampp\apache\bin\curl-ca-bundle.crt"
。保存文件并关闭它。 - 在 Xampp 中单击停止,然后再次启动,重新启动 Apache(和 PHP)。
更新:
根据您的评论和此 separate SO question,我尝试了 php -i
并查找了我使用的 php.ini 文件(由 php-cli)。我看到它确实也是一个不同的 ini 文件,我的文件位于 C:\tools\php80
并且它在扩展部分中没有注释 curl,但我不需要像上面指定的那样指定 ca-bundle.crt 路径。删除分号以在 php-cli 程序(composer 用于加载依赖项)上启用 curl。
编辑 2(最初作为下面的评论):
我的 php ini 也启用了 openssl,我需要在搜索 [openssl] 时指定 openssl.cafile="C:\xampp\apache\bin\curl-ca-bundle.crt"。此外,我似乎在“模块设置”部分下列出了 extension=php_openssl.dll。您应该能够使用这些更正来编辑 PHP.ini。从 Xampp 重新启动 Apache 并重试。