尝试通过Setup Installer在 Win7/64 + WampServer 2.2 上安装Composer依赖关系管理工具,我收到以下消息:
缺少openssl扩展,这将降低Composer的安全性和稳定性 . 如果可能,您应该启用它或使用--with-openssl重新编译php
所以这就是我所做的......
-
从托盘中的Wamp图标,单击
php > php extensions > php_openssl
-
这表明任务是通过在扩展名旁放置 check mark 来完成的
-
然后我重新启动了WampServer
-
然后从托盘中的Wamp图标,我点击
php > php.ini
并搜索openssl以验证它没有被评论出来 . 它不是 . -
然后我回到Composer-Setup.exe并再次尝试 . Same Warning Message :"openssl extension is missing"
-
让 never 使用OpenSSL,我不确定应该设置什么,所以我尝试使用https浏览到我的本地站点之一 . 它失败了 .
我错过了什么?
请指教 .
13 回答
打开wamp / bin / apache / apache2.4.4 / bin / php配置.. wamp / bin / php / php5.4.16 / php conf设置,php-ini制作,php-ini dev,phpForApache找到 extension=php_openssl.dll 并取消注释 ;
简短而甜蜜,在
wamp/bin/php/php5.3.13
(或任何php版本)中取消注释这一行:;extension=php_openssl.dll
(删除;
)现在运行Composer的命令行安装 . 你不会有错误 .
很高兴去!
是的,您必须打开php.ini并删除分号:
除掉 ”;”像这样,它会工作 .
快乐的编码 .
为了安装Composer,下面的步骤让我:(WAMP版本2.4 x64bit)
你需要编辑“c:\ Program Files \ wamp \ bin \ php \ php5.3.13 \ php.ini”文件搜索:; extension = php_openssl.dll
在开头删除分号
注意:如果保存文件不起作用,则需要以管理员身份进行编辑 . (在win7上)转到开始菜单,搜索记事本,右键单击记事本,单击“以管理员身份运行”
在作曲家安装窗口中,只需单击后面然后单击(或关闭它然后重新开始)它应该可以工作
WAMP在CLI和Apache中使用不同的php.ini文件 . 当您通过WAMP UI启用php_openssl时,您为Apache启用它,而不是为CLI启用它 . 您需要修改C:\ wamp \ bin \ php \ php-5.4.3 \ php.ini以启用它 .
除了取消注释
php.ini
中其他人都提到的;extension=php_openssl.dll
行之外,您还必须确保;extension_dir = "ext"
行也被取消注释 . 要取消注释,请删除带前缀的分号并保存 .该行可能已经在WAMP和XAMPP等软件包中取消注释,但它值得验证 . 此外,您必须通过将其中一个示例(如
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在我的机器上的安装方式 . 我没有改变任何东西,所以这可能也会发生在其他人身上 . 这与上面的Augie Gardner的答案基本相同,但我只想指出你可能有两个php.ini文件 .
在两者中取消注释
;extension=php_openssl.dll
它会工作
我正在使用EasyPhp(WAMP类型) . 在任务栏的EasyPHP图标中,右键单击并选择配置,然后选择PHP . 我将在记事本中打开
PHP.ini
文件配置,在记事本中搜索查找或CTRL F中的单词OPENSSL
你会发现这个;extension=php_openssl.dll
只是删除了;并且extension=php_openssl.dll
处于活动状态 .你应该为php.ini创建一个符号链接 . 抱歉russian link .
所有这些答案都很好,但实际上,如果您想了解,如果您希望所有未注释的扩展都能正常工作,则扩展目录必须正确 . 可以写一个物理或相对路径
要么
这是相对于httpd.exe Apache Web服务器(C:\ myStack \ apache \ bin)但是如果你想让它与 Composer 或任何你需要 physical path 一起使用,因为cli模式不使用web服务器!
我面临同样的问题 . 我将我的php文件夹从
php7_winxxxx
重命名为php,它运行正常 . 看起来像作曲家正在检查c:/php/ext
中php_openssl模块的位置 .您可能还需要将
c:/php
添加到环境变量中的PATH