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


123

我想安装Zend Framework2。因此我下载了骨架应用程序。如ZF2手册中所述,我们必须发出命令

php composer.phar install 

里面的骨骼。

但是我遇到一个错误

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

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

扩展名= php_openssl.dll

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


1
我在运行travis-ci时遇到了这个问题,事实证明,与阳光下的每个Linux发行版不同,某些较旧的travis-ci环境是在没有openssl的情况下编译的,以防万一其他人遇到相同的问题。
2013年

@Kzqai是否可以在travis中编译此扩展,例如我的问题中的 PHP 5.3.3 ?我从他们的食谱中看到可以安装PECL扩展,但我认为openssl扩展不能通过PECL使用。
杰夫·普基特

Answers:


286

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

在行;extension=php_openssl.dll中查找wamp/bin/php/php#.#.##/php.ini 并取消注释,方法是;从行的开头删除分号()。


我还必须启用phar扩展名(extension = php_phar.dll),如下所述,apache ssl模块!
Diego Favero

1
“ PHP CLI SAPI使用的是与CGI或Apache模块不同的php.ini。” 那是诀窍!
乔治D.

如果您找不到该行,php.ini只需extension=php_openssl.dll在其中的“动态扩展”部分下添加该行即可。
totymedli 2013年

我正在使用xampp,即使在删除';'之后,Composer也会给出相同的打开ssl丢失错误。php.ini中的openssl扩展名。
Shashikumar Misal,2014年

如果您使用Mac和port,则可以选择PHP版本,port select php php55并安装扩展名port install php55-openssl
Prabowo Murti 2014年

36

确认您正在编辑正确的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启用它。”


2
谁会想到...真的...这样就解决了问题。谢谢
Ruwantha


9

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

须藤端口安装php54-openssl

5

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

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

只需输入:

$ php composer.phar self-update

要么

$ composer selfupdate

祝好运!


4

我使用XAMPP。在C:\ xampp \ php \ php.ini中,openssl的条目不存在,因此我在989行中添加了“ extension = php_openssl.dll”,并且composer正常工作。



3

乌塔姆(Uttam),如果您的问题仍未解决,请尝试以下3步方法。它对我有用,因为我有完全相同的问题。

步骤1:单击洗手盘图标。

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

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

它将自动重启wamp。如果Wamp没有自动重启,请通过wamp托盘菜单-> Restart All services将其重启。重新启动后,确认apache-> apache modules菜单下的“ ssl_module”已打勾

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

祝好运


3

瓦莱里(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中启用它。


2

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


1

较晚的答案,但添加其他可以了解原因。

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



0

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

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

它应该工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.