1

当我尝试composer install在 CLI 中运行时,我收到此错误:

You must enable the openssl extension to download files via https

问题似乎在我composer.phar文件的第 5381 行:

if (!extension_loaded('openssl') && (0 === strpos($url, 'https:') || 0 === strpos($url, 'http://github.com'))) {
    throw new \RuntimeException('You must enable the openssl extension to download files via https');
}

我在两个 php.ini 文件中都启用了 openssl 扩展。(阿帕奇和 PHP)

如果我openssl version在 CLI 中运行它会返回

OpenSSL 1.0.1c 10 May 2012

我通过我的 WAMP 服务器运行了以下 PHP 脚本:

echo extension_loaded('openssl');

它打印了1

据我所知,我的 openssl 扩展工作正常,但由于某种原因,它仍然会导致 Composer 出现此错误。

有没有人看到我可能忽略的任何问题?

4

3 回答 3

4

在 HTTP 服务器中运行的 PHP 和在命令行上运行的 PHP 是有区别的——这两种情况都使用自己的配置,因此可能是您的命令行版本没有配置 SSL 扩展。

检查自己:php -i在命令行上显示 phpinfo 输出。有什么 OpenSSL 可以看到吗?

当您使用它时,使用相同的输出,找到php.ini正在使用的信息,然后添加 OpenSSL 扩展。

于 2013-08-02T22:49:57.843 回答
2

As you did not provide a lot of information, I just assume that your system setup (Windows XP, WAMP) is similar to mine. In principle this answer should work on Unix but I am not able to check it.

Anyway, I had PHP running on WAMP and I had set up the ini-files correctly but still I got the same error as you did. After doing some research and a lot of tinkering, I noticed that the PHP running on command line did not actually use any ini-files (command php --ini). After noticing that, I got composer running properly by setting the ini-file with php -c command.

Long story short, try this command php -c /path/to/ini/file composer install and see if it works.

于 2013-08-14T13:49:26.803 回答
0

这是我在安装 Composer 时解决问题的方法。我已将 php 文件保存到 c:\php。在 php.ini 文件中,我通过删除分号打开了扩展名 =php_openssl.dll,但没有成功。我在名为 ext 的子目录中找到了扩展 openssl.dll 。我将它复制到 c:\php 目录。我遇到了立竿见影的成功。多么麻烦!很高兴继续前进。

于 2014-09-16T14:37:55.633 回答