Composer PHP包管理器出现OpenSSL错误

Composer PHP包管理器出现OpenSSL错误,php,openssl,composer-php,Php,Openssl,Composer Php,当我尝试在CLI中运行composer install时,出现以下错误: 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.co

当我尝试在CLI中运行
composer install
时,出现以下错误:

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扩展。(Apache和PHP)

如果我在CLI中运行
openssl版本
,它将返回

OpenSSL 1.0.1c 10 May 2012
我通过WAMP服务器运行了以下PHP脚本:

echo extension_loaded('openssl');
它打印了
1

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


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

在HTTP服务器内运行的PHP和在命令行上运行的PHP之间存在差异-这两种情况都使用自己的配置,因此可能是您的命令行版本没有配置SSL扩展

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


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

在HTTP服务器内运行的php和在命令行上运行的php之间存在差异-这两种情况都使用各自的配置,因此,您的命令行版本可能没有配置SSL扩展

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


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

由于您没有提供太多信息,我只是假设您的系统设置(Windows XP,WAMP)与我的类似。原则上,这个答案应该适用于Unix,但我无法检查它

无论如何,我让PHP在WAMP上运行,并且我已经正确地设置了ini文件,但是仍然得到了与您相同的错误。在做了一些研究和大量修补之后,我注意到在命令行上运行的PHP实际上没有使用任何ini文件(command
PHP--ini
)。注意到这一点后,我通过使用
php-c
命令设置ini文件,使composer正常运行


长话短说,试试这个命令
php-c/path/to/ini/file composer install
,看看它是否有效。

由于您没有提供太多信息,我只是假设您的系统设置(Windows XP,WAMP)与我的类似。原则上,这个答案应该适用于Unix,但我无法检查它

无论如何,我让PHP在WAMP上运行,并且我已经正确地设置了ini文件,但是仍然得到了与您相同的错误。在做了一些研究和大量修补之后,我注意到在命令行上运行的PHP实际上没有使用任何ini文件(command
PHP--ini
)。注意到这一点后,我通过使用
php-c
命令设置ini文件,使composer正常运行


长话短说,试试这个命令
php-c/path/to/ini/file composer install
,看看它是否有效。

下面是我在安装composer时解决问题的方法。我已将php文件保存到c:\php。在php.ini文件中,我通过删除分号打开了扩展名=php_openssl.dll,但没有成功。我在名为ext的子目录中找到了扩展名openssl.dll。我将其复制到c:\php目录。我立即获得了成功。真麻烦!很高兴继续。以下是我在安装Composer时如何解决问题的。我已将php文件保存到c:\php。在php.ini文件中,我通过删除分号打开了扩展名=php_openssl.dll,但没有成功。我在名为ext的子目录中找到了扩展名openssl.dll。我将其复制到c:\php目录。我立即获得了成功。真麻烦!很高兴继续。

我照你说的做了。Openssl在我提到的一个
php.ini
文件中被禁用,我在中启用了它。我之前认真检查了5次。。。和往常一样,我可能只是做了些傻事。不管怎样,即使正确的答案应该是“别傻了”,我还是会接受你的答案我照你说的做了。Openssl在我提到的一个
php.ini
文件中被禁用,我在中启用了它。我之前认真检查了5次。。。和往常一样,我可能只是做了些傻事。不管怎样,即使正确的答案应该是“别傻了”,我还是会接受你的答案可能的重复可能的重复可能的重复可能的重复