我想安装 Zend Framework 2。所以我下载了框架应用程序。正如ZF2手册中提到的,我们必须发出命令
php composer.phar install
骨架里面。
但我收到一个错误
您必须启用 openssl 扩展才能通过 https 下载文件
然后我在我的 wamp 中启用了 ssl_module,我检查了 php_ini 文件,我可以看到以下行
扩展=php_openssl.dll
我仍然遇到同样的错误。有人知道我错过了什么吗?
PHP CLI SAPI 使用的 php.ini
与 CGI 或 Apache 模块不同。
在 wamp/bin/php/php#.#.##/php.ini
中找到第 ;extension=php_openssl.dll
行,并通过删除行首的分号 (;
) 取消注释。
验证您正在编辑正确的 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 启用它。”
确保您有正确的扩展文件夹路径
extension_dir = "分机"
默认情况下,它带有注释;特点
在玩 Zend Framework 2 和 composer 时,我也遇到了同样的问题。我正在使用 PHP 5.4(通过 macports 安装),我的解决方案是通过 macports 为 PHP 5.4 安装 openssl。
sudo port install php54-openssl
我遇到了这个问题,但配置 openssl(也适用于 cli)并没有帮助。
我已经更新了作曲家,这解决了我的问题。
只需输入:
$ php composer.phar self-update
或者
$ composer selfupdate
祝你好运!
我使用 XAMPP。在 C:\xampp\php\php.ini 中,openssl 的条目不存在,所以我在第 989 行添加了“extension=php_openssl.dll”,composer 工作了。
您需要在两个文件(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
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”
祝你好运
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 启用它。
确保为 CLI
更新您的 php.ini
。就我而言,这是 C:\wamp\bin\php\php5.4.3\php.ini
并取消注释 extension=php_openssl.dll
行。
迟到的答案,但添加以便其他人可以了解原因。
您还需要在“wamp\bin\php\php-XYZ”位置编辑 php.ini 文件。
我必须取消注释 php.ini
文件中的 extension=openssl
才能正常工作!
请注意,如果您使用 wamp,请不要使用 wamp ui 来启用 extension=php_openssl.dll
只需转到您的 php 目录,例如:C:\wamp\bin\php\php5.4.12
并编辑 php.ini
并取消注释 extension=php_openssl.dll
。
它应该工作。
php.ini
中找不到该行,只需在其中的 Dynamic Extensions 部分下添加行extension=php_openssl.dll
。port
,您可以通过port select php php55
选择 PHP 版本并安装扩展程序port install php55-openssl