尝试通过 Setup Installer 在 Win7/64 + WampServer 2.2 上安装 Composer 依赖项管理工具,我收到以下消息:
缺少 openssl 扩展,会降低 Composer 的安全性和稳定性。如果可能,您应该启用它或使用 --with-openssl 重新编译 php
所以这就是我所做的......
从托盘中的 Wamp 图标,单击 php > php extensions > php_openssl 这表明任务已通过在扩展旁边放置复选标记完成我然后重新启动 WampServer 然后从托盘中的 Wamp 图标,我单击 php > php.ini 并搜索openssl 来验证它没有被评论)出来。不是。然后我回到 Composer-Setup.exe 并再次尝试。相同的警告消息:“openssl extension is missing” 从未使用过 OpenSSL,我不确定应该设置什么,所以我尝试使用 https 浏览到我的本地站点之一。它失败了。
我错过了什么?
请指教。
WAMP 在 CLI 和 Apache 中使用不同的 php.ini 文件。当您通过 WAMP UI 启用 php_openssl 时,您为 Apache 启用它,而不是为 CLI 启用它。您需要修改 C:\wamp\bin\php\php-5.4.3\php.ini 为 CLI 启用它。
除了取消其他人提到的 php.ini
中的 ;extension=php_openssl.dll
行之外,您还必须确保 ;extension_dir = "ext"
行也未注释。要取消注释,请删除前缀分号并保存。
该行可能已经在 WAMP 和 XAMPP 等软件包中未注释,但它不在 Windows 的普通 PHP 下载中,因此值得验证。此外,您必须通过将示例之一(例如 php.ini-development
)复制到新文件中来创建 php.ini
文件,然后将其命名为 php.ini
。然后在那里进行这些更改。
另外,将来要安装 PHP 和 Composer 等工具,我建议使用 Chocolatey 包管理器。那么它就像 choco install composer
一样简单。当然,在使用 choco 方法安装 Composer 之前,您仍然需要编辑 php.ini。在 Windows 的未来版本中,package management tools like Chocolatey will be baked into Windows 与 Ubuntu 中的 apt-get
相同。开发人员的激动人心的时刻!
无论使用哪种方法,安装 Composer 后,不要忘记重新启动终端。无论您使用的是命令提示符、Bash(与 Git 一起安装)还是 Powershell,您都需要在更新的环境变量生效之前重新启动它。
即使启用了openssl,我也遇到了同样的问题。问题是 Composer 安装程序正在查看此配置文件:
C:\wamp\bin\php\php5.4.3\php.ini
但是加载的配置文件实际上是在这里:
C:\wamp\bin\apache\apache2.2.22\bin\php.ini
所以我只需要在第一个 php.ini 文件中取消注释它就可以了。这就是默认情况下在我的机器上安装 WAMP 的方式。我没有去改变任何东西,所以这可能也会发生在其他人身上。这与上面奥吉加德纳的回答基本相同,但我只是想指出您可能有两个 php.ini 文件。
在两者中取消注释 ;extension=php_openssl.dll
wamp\bin\php\php5.4.12\php.ini
wamp\bin\apache\Apache2.4.4\bin\php.ini
它会起作用的
C:\laravel-master>composer create-project laravel/laravel 安装 laravel/laravel (v4.0.6) - 安装 laravel/laravel (v4.0.6) [RuntimeException] 必须启用 openssl 扩展才能通过 https 下载文件
我正在使用 EasyPhp(WAMP 类型)。在任务栏中的 EasyPHP 图标中,右键单击并选择配置,然后选择 PHP。我将在记事本中打开 PHP.ini
文件配置,在记事本中搜索查找或 CTRL+F 查找单词 OPENSSL
你会发现这个 ;extension=php_openssl.dll
只是去除 ; extension=php_openssl.dll
处于活动状态。
C:\laravel-master>composer create-project laravel/laravel 安装 laravel/laravel (v4.0.6) - 安装 laravel/laravel (v4.0.6) 下载: 100% Created project in C:\laravel-master\laravel Loading composer包含包信息的存储库安装依赖项(包括 require-dev)
您需要编辑“c:\Program Files\wamp\bin\php\php5.3.13\php.ini”文件搜索:;extension=php_openssl.dll
去掉开头的分号
注意:如果保存文件不起作用,那么您需要以管理员身份对其进行编辑。 (在win7上)转到开始菜单,搜索记事本,右键单击记事本,单击“以管理员身份运行”
在作曲家安装窗口中只需单击返回然后下一步(或关闭它并重新开始)它应该可以工作
打开 wamp/bin/apache/apache2.4.4/bin/php config.. wamp/bin/php/php5.4.16/php conf 设置,php-ini 生产,php-ini 开发,phpForApache 找到 extension=php_openssl.dll 并取消注释通过消除 ;
简短而甜蜜,在 wamp/bin/php/php5.3.13
(或任何 php 版本)中取消注释此行:
;extension=php_openssl.dll
(删除 ;
)
现在运行 Composer 的命令行安装。您不会出错。
开始!
是的,您必须打开 php.ini 并删除分号才能:
;extension=php_openssl.dll
去除 ”;”像这样,它会工作。
extension=php_openssl.dll
快乐编码。
为了安装 Composer,以下步骤对我有用:(WAMP 版本 2.4 x64bit)
edit ->
**C:\wamp\bin\php\php5.4.12\php.ini**
;;uncomment below line or remove the semicolons ';'
extension=php_openssl.dll
**C:\wamp\bin\apache\Apache2.4.4\bin\php.ini**
extension=php_openssl.dll
所有这些答案都很好,但实际上,如果您想了解,如果您希望所有未注释的扩展都能正常工作,则扩展目录必须是正确的。可以写一个物理或相对路径,如
extension_dir = "C:/myStack/php/ext"
或者
extension_dir = "../../php/ext"
它相对于 httpd.exe Apache Web 服务器 (C:\myStack\apache\bin) 但如果您希望它与 Composer 或任何您需要的物理路径一起使用,因为 cli 模式不使用 Web 服务器!
我面临着同样的问题。我将我的 php 文件夹从 php7_winxxxx
重命名为 php,它运行良好。看起来 composer 正在检查 c:/php/ext
中 php_openssl 模块的位置。
您可能还需要将 c:/php
添加到环境变量中的 PATH