试图通过安装程序在Win7/64+WampServer 2.2上安装Composer依赖项管理工具,收到以下消息:
缺少openssl扩展,这将降低Composer的安全性和稳定性。如果可能的话,您应该启用它或使用openssl 重新编译php
这就是我所做的。。。
- 在托盘中的Wamp图标中,单击
php > php extensions > php_openssl
- 这表明通过在扩展旁边放置复选标记来完成任务
- 然后我重新启动了WampServer
- 然后从托盘中的Wamp图标中,我单击
php > php.ini
并搜索openssl以验证它是否未被注释(。事实并非如此 - 然后我返回Composer-Setup.exe并重试相同的警告消息:"openssl扩展丢失">
- 由于从未使用过OpenSSL,我不确定应该设置什么,所以我尝试使用https浏览到我的一个本地网站。它失败了
我错过了什么?
请告知。
WAMP在CLI和Apache中使用不同的php.ini文件。当您通过WAMP UI启用php_opensl时,您为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版本中,像Chocolatey这样的包管理工具将被移植到Windows中,就像apt-get
在Ubuntu中一样。开发人员将迎来激动人心的时刻!
无论使用哪种方法,安装Composer后,都不要忘记重新启动您的终端。无论您使用的是命令提示符、Bash(使用Git安装(还是Powershell,都需要在更新的环境变量工作之前重新启动它。
即使启用了openssl,我也遇到了同样的问题。问题是Composer安装程序正在查看以下配置文件:
C: \wamp\bin\php\php5.4.3\php.ini
但加载的配置文件实际上就在这里:
C: \wamp\bin\apache2.2.22\bin\php.ini
所以我只需要在第一个php.ini文件中取消对它的注释,就可以了。默认情况下,WAMP就是这样安装在我的机器上的。我没有去改变任何事情,所以这可能也会发生在其他人身上。这与Augie-Gardner上面的回答基本相同,但我只是想指出,您可能有两个php.ini文件。
在两个中取消注释;extension=php_openssl.dll
wampbinphpphp5.4.12php.ini
wampbinapacheApache2.4.4binphp.ini
它将工作
C:\laravel-master>作曲家创建项目laravel/laravel安装laravel/laravel(v4.0.6(-安装laravel/laravel(v4.0.6([运行时异常]您必须启用openssl扩展才能通过https下载文件
我使用的是EasyHP(WAMP类型(。在任务栏的EasyHP图标中,右键单击并选择配置,然后选择PHP。我将在记事本中打开PHP.ini
文件配置,在记事本中搜索find或CTRL+F单词OPENSSL
,您会发现此;extension=php_openssl.dll
只需删除;并且CCD_ 15是活动的。
C:\laravel-master>作曲家创建项目laravel/laravel安装laravel/laravel(v4.0.6(-安装laravel/laravel(v4.0.6(下载:100%在C:\laravel-master\laravel中创建项目正在加载包含包信息的composer存储库安装依赖项(包括require-dev(
您需要编辑"c:\Program Files\wamp\bin\php\php5.3.13\php.ini"文件搜索:;extension=php_opensl.dll
删除开头的分号
注意:如果保存文件不起作用,则需要以管理员身份对其进行编辑。(在win7上(转到"开始"菜单,搜索记事本,右键单击记事本,单击"以管理员身份运行">
在composer安装窗口中,只需单击"上一步",然后单击"下一步"(或关闭它并重新启动(,它应该可以运行
打开的wamp/bin/apache/apache2.4.4/bin/php配置。。wamp/bin/php/php5.4.16/php-conf设置,php-in-production,php-in-dev,phpForApache查找extension=php_openssl.dll并通过删除取消注释
简短而甜蜜,在wamp/bin/php/php5.3.13
(或任何php版本(中取消注释此行:;extension=php_openssl.dll
(移除;
(
现在运行Composer的命令行安装。你不会有错误
很好!
您应该制作一个到php.ini的符号链接。很抱歉有俄语链接。
是的,您必须打开php.ini并删除分号以:
;extension=php_openssl.dll
像这样删除";",它就会起作用。
extension=php_openssl.dll
快乐编码。
对于安装Composer,以下步骤对我有效:(WAMP版本2.4 x64bit(
edit ->
**C:wampbinphpphp5.4.12php.ini**
;;uncomment below line or remove the semicolons ';'
extension=php_openssl.dll
**C:wampbinapacheApache2.4.4binphp.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_opensl模块的位置。
您可能还需要将c:/php
添加到环境变量中的PATH
中