您必须启用 openssl 扩展才能通过 https 下载文件
Posted
技术标签:
【中文标题】您必须启用 openssl 扩展才能通过 https 下载文件【英文标题】:You must enable the openssl extension to download files via https 【发布时间】:2012-12-26 19:14:38 【问题描述】:我想安装 Zend Framework 2。所以我下载了框架应用程序。正如ZF2手册中提到的,我们必须发出命令
php composer.phar install
骨架内部。
但是我遇到了一个错误
然后我在我的 wamp 中启用了 ssl_module,我检查了 php_ini 文件,我可以看到以下行
extension=php_openssl.dll
我仍然遇到同样的错误。有人知道我错过了什么吗?
【问题讨论】:
我在运行 travis-ci 时遇到了这个问题,事实证明,与阳光下的每个 linux 发行版不同,一些较旧的 travis-ci 环境是在没有 openssl 的情况下编译的,以防万一其他人遇到同样的问题。 @Kzqai 是否可以在 travis 中编译此扩展,例如 my question 中的 PHP 5.3.3?我从their cookbook 看到可以安装PECL 扩展,但我认为openssl 扩展不能通过PECL 获得。 【参考方案1】: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
中找不到该行,只需在其中的动态扩展部分下添加行extension=php_openssl.dll
。
我正在使用 xampp,Composer 给出相同的打开 ssl 丢失错误,即使在删除 ';' 后也是如此php.ini 中的 openssl 扩展。
如果您使用的是Mac和port
,您可以通过port select php php55
选择PHP版本并安装扩展port install php55-openssl
【参考方案2】:
验证您正在编辑正确的 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-X.Y.Z\php.ini 为 CLI 启用它。”
【讨论】:
谁会想到...真的...这解决了问题。谢谢【参考方案3】:确保您有正确的扩展文件夹路径
extension_dir = "ext"
默认情况下用 ; 注释人物
【讨论】:
此行已被完全注释掉,现在可以正常工作了 对windows安装很重要! 这条线在哪里?在哪个文件中? php.ini 在 1, C:\wamp64\bin\apache OR 2. C:\wamp64\bin\php\php7.0.0 ?【参考方案4】:我在玩 Zend Framework 2 和 composer 时也遇到了同样的问题。我正在使用 PHP 5.4(通过 macports 安装),我的解决方案是也通过 macports 为 PHP 5.4 安装 openssl。
sudo 端口安装 php54-openssl【讨论】:
【参考方案5】:我遇到过这个问题,但配置 openssl(也适用于 cli)没有帮助。
我更新了作曲家,这解决了我的问题。
只需输入:
$ php composer.phar self-update
或
$ composer selfupdate
祝你好运!
【讨论】:
【参考方案6】:我使用 XAMPP。在 C:\xampp\php\php.ini 中,openssl 的入口不存在,所以我在第 989 行添加了“extension=php_openssl.dll”,composer 工作了。
【讨论】:
【参考方案7】:您需要在两个文件(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【参考方案8】:Uttam,如果您的问题仍未解决,请尝试以下 3 步方法。它对我有用,因为我遇到了完全相同的问题。
第1步:点击wamp托盘图标。
第二步:转到菜单 apache->apache 模块
第三步:点击菜单项“ssl_module”
它会自动重启 wamp。如果 wamp 没有自动重新启动,则通过 wamp 托盘菜单-> 重新启动所有服务重新启动它。重新启动后确认“ssl_module”在菜单 apache->apache modules
下打勾然后尝试 php composer.phar 安装 通过您共享的响应,php.ini 文件包含 extension=php_openssl.dll 并且 php/ext 目录也有文件“php_openssl.dll”
祝你好运
【讨论】:
【参考方案9】:瓦莱里的回答帮助了我: https://***.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 启用它。
【讨论】:
【参考方案10】:确保将php.ini
更新为CLI
。就我而言,这是C:\wamp\bin\php\php5.4.3\php.ini
并取消注释extension=php_openssl.dll
行。
【讨论】:
【参考方案11】:迟到的答案,但添加以便其他人可以了解原因。
您还需要在“wamp\bin\php\php-X.Y.Z”位置编辑php.ini文件。
【讨论】:
【参考方案12】:我必须取消注释 php.ini
文件中的 extension=openssl
才能正常工作!
【讨论】:
【参考方案13】:如果您使用 wamp,请注意不要使用 wamp ui 来启用 extension=php_openssl.dll
只需转到您的 php 目录,例如:C:\wamp\bin\php\php5.4.12
并编辑 php.ini
并取消注释 extension=php_openssl.dll
。
它应该可以工作。
【讨论】:
以上是关于您必须启用 openssl 扩展才能通过 https 下载文件的主要内容,如果未能解决你的问题,请参考以下文章