ChatGPT解决这个技术问题 Extra ChatGPT

您必须启用 openssl 扩展才能通过 https 下载文件

我想安装 Zend Framework 2。所以我下载了框架应用程序。正如ZF2手册中提到的,我们必须发出命令

php composer.phar install 

骨架里面。

但我收到一个错误

您必须启用 openssl 扩展才能通过 https 下载文件

然后我在我的 wamp 中启用了 ssl_module,我检查了 php_ini 文件,我可以看到以下行

扩展=php_openssl.dll

我仍然遇到同样的错误。有人知道我错过了什么吗?

我在运行 travis-ci 时遇到了这个问题,事实证明,与阳光下的每个 linux 发行版不同,一些较旧的 travis-ci 环境是在没有 openssl 的情况下编译的,以防万一其他人遇到同样的问题。
@Kzqai 是否可以在 travis 中编译此扩展,例如 my question 中的 PHP 5.3.3?我从 their cookbook 看到您可以安装 PECL 扩展,但我认为 openssl 扩展不能通过 PECL 获得。

t
totymedli

PHP CLI SAPI 使用的 php.ini 与 CGI 或 Apache 模块不同。

wamp/bin/php/php#.#.##/php.ini 中找到第 ;extension=php_openssl.dll 行,并通过删除行首的分号 (;) 取消注释。


我还必须启用 phar 扩展( extension=php_phar.dll ),如下所述,apache ssl 模块!
“PHP CLI SAPI 使用的 php.ini 与 CGI 或 Apache 模块不同。”这就是诀窍!
如果您在 php.ini 中找不到该行,只需在其中的 Dynamic Extensions 部分下添加行 extension=php_openssl.dll
我正在使用 xampp,Composer 给出相同的 open ssl 丢失错误,即使在删除“;”之后也是如此php.ini 中的 openssl 扩展。
如果您使用的是 Mac 和 port,您可以通过 port select php php55 选择 PHP 版本并安装扩展程序 port install php55-openssl
D
Duramba

验证您正在编辑正确的 php.ini 文件。

参考:https://github.com/composer/composer/issues/1440

“WAMP 在 CLI 和 Apache 中使用不同的 php.ini 文件。当您通过 WAMP UI 启用 php_openssl 时,您为 Apache 而不是 CLI 启用它。您需要修改 C:\wamp\bin\php\php- XYZ\php.ini 为 CLI 启用它。”


谁会想到……真的……这解决了问题。谢谢
A
Adam Kopciński

确保您有正确的扩展文件夹路径

extension_dir = "分机"

默认情况下,它带有注释;特点


这条线被完全注释掉了,现在它可以工作了
对windows安装很重要!
这条线在哪里?在哪个文件中? 1, C:\wamp64\bin\apache 或 2. C:\wamp64\bin\php\php7.0.0 中的 php.ini ?
F
Freddy Duarte

在玩 Zend Framework 2 和 composer 时,我也遇到了同样的问题。我正在使用 PHP 5.4(通过 macports 安装),我的解决方案是通过 macports 为 PHP 5.4 安装 openssl。

sudo port install php54-openssl

e
edigu

我遇到了这个问题,但配置 openssl(也适用于 cli)并没有帮助。

我已经更新了作曲家,这解决了我的问题。

只需输入:

$ php composer.phar self-update

或者

$ composer selfupdate

祝你好运!


A
Andrew Koper

我使用 XAMPP。在 C:\xampp\php\php.ini 中,openssl 的条目不存在,所以我在第 989 行添加了“extension=php_openssl.dll”,composer 工作了。


M
Mohammed Saqib Rajput

您需要在两个文件(php 和 apache)中启用“extension=php_openssl.dll”。我的电脑文件路径是这些:

C:\wamp\bin\php\php5.3.13\php.ini C:\wamp\bin\apache\apache2.2.22\bin\php.ini


这是错误的。使用 phpinfo() 检查使用了哪个 php.ini
a
adang

Uttam,如果您的问题没有解决,请尝试以下 3 步方法。它对我有用,因为我遇到了完全相同的问题。

step1:点击wamp托盘图标。

第二步:转到菜单 apache->apache 模块

第三步:点击菜单项“ssl_module”

它会自动重启 wamp。如果 wamp 未自动重新启动,则通过 wamp 托盘菜单-> 重新启动所有服务重新启动它。重新启动后确认“ssl_module”在菜单 apache->apache 模块下打勾

之后,只需通过您共享的响应尝试 php composer.phar 安装,php.ini 文件包含 extension=php_openssl.dll 并且 php/ext 目录也有文件“php_openssl.dll”

祝你好运


C
Community

Valery 的回答帮助了我:https://stackoverflow.com/a/14265815/492457

WAMP 在 CLI 和 Apache 中使用不同的 php.ini 文件。当您通过 WAMP UI 启用 php_openssl 时,您为 Apache 启用它,而不是为 CLI 启用它。您需要修改 C:\wamp\bin\php\php-5.4.3\php.ini 为 CLI 启用它。


R
RAS

确保为 CLI 更新您的 php.ini。就我而言,这是 C:\wamp\bin\php\php5.4.3\php.ini 并取消注释 extension=php_openssl.dll 行。


S
Shah Alom

迟到的答案,但添加以便其他人可以了解原因。

您还需要在“wamp\bin\php\php-XYZ”位置编辑 php.ini 文件。


t
tensor

我必须取消注释 php.ini 文件中的 extension=openssl 才能正常工作!


m
meti

请注意,如果您使用 wamp,请不要使用 wamp ui 来启用 extension=php_openssl.dll

只需转到您的 php 目录,例如:C:\wamp\bin\php\php5.4.12 并编辑 php.ini 并取消注释 extension=php_openssl.dll

它应该工作。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅