Answers:
WAMP和Composer可能使用不同的PHP安装。Composer将使用PATH
环境变量中设置的PHP 。
如果要启用openssl扩展名以安装Composer,首先需要检查PHP安装的位置。
echo %PATH%
然后检查您的PHP安装位置。php.ini
。extension=php_openssl.dll
通过删除开头的分号来。现在您可以很好地安装Composer。
echo %PATH%
我得到:C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sysem32\WindowsPowerShell\v1.0\;C:\Program files\Microsoft\Web Platform Installer\;C:\Program Files\MySQL\MySQL Server 5.5\bin
..在那些目录中没有安装任何php ..我现在该怎么办?
extension_dir = "ext"
的php.ini
,但我使用纯PHP的安装,而不是WAMP。
我以不同的方式解决了我的问题。问题是wamp的GUI令人误解:它声称我已php_openssl
启用..如果我单击php.ini
相同的GUI ..它实际上表明extension=php_openssl.dll
没有注释。
我不确定我是否使用的是OP的安装程序的同一安装程序版本,但实际上它一开始要求您指定要在php.exe
其上应用Composer的对象(这基本上可以确保没有人尝试将Composer应用于错误的php可执行文件,如OP发生的情况。。
我解决此问题的方法是将自己投入到wamp软件包中的php安装中:C:\wamp\bin\php\php5.4.12
并在php.in
那里查看..当我打开它时,我惊讶地发现该行extension=php_openssl.dll
实际上已被注释!我没有对此发表评论,并且效果很好。
我遇到了同样的问题,在这里找到了解决方案,在您的php.ini上,您需要进行一些更改:
extension_dir = "ext"
extension = php_openssl.dll
这里的每个人都在谈论激活openssl扩展,但是在Windows中,您也需要激活扩展目录。
extension_dir
,你很棒!
对于WAMP服务器,“ Enrique”给出的注释解决了我的问题。
wamp正在使用此php.ini:
c:\wamp\bin\apache\Apache2.4.4\bin\php.ini
但是作曲家正在使用CLI中的PHP,因此正在读取此文件:
c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)
对于作曲家,您将必须在
c:\wamp\bin\php\php5.4.12\php.ini
更改:
;extension=php_openssl.dll
至
extension=php_openssl.dll
如果您是在没有 WAMP堆栈之一的Windows上执行此操作的,请按以下步骤操作
C:\php
。Composer的安装程序在没有任何其他提示的情况下找到了它php.ini
。相反,您将看到两个文件,如下所述。重命名为php.ini
或复制到php.ini
。
打开php.ini
文件,然后从此行中删除分号(您可能也想取消其他注释,但这是Composer唯一需要的行)
;extension=php_openssl.dll
那应该就是您要做的。Composer安装程序应从此处执行您需要执行的其他所有操作。
您需要在两个文件(php和apache)中都启用“ extension = php_openssl.dll”。我的电脑文件路径是这些:
有两个php.ini
文件,一个用于开发,一个用于生产。离开这些php.ini
文件,在它们上方还有一个用于配置设置的文件,并带有图标编辑之类的工具。
php.ini
,然后在此处进行其他建议的编辑即可。
编辑“正确的”文件(所有php.ini文件)之后。我仍然有问题。我的解决方案是:
添加系统变量:OPENSSL_CONF
OPENSSL_CONF的值应为当前php版本的openssl.cnf文件。
对我来说是:
->重新启动WAMP->现在应该可以使用
对于那些遇到与我相同的问题的人。完成上述所有解决方案后,仍然对我不起作用。我发现,uWamp正在bin / apache目录中创建PHP.INI文件。因此,我不得不将PHP.INI文件复制到php安装目录中,即bin / php / phpXXXX目录。这也应该是您从作曲家设置中选择的php.exe所在的位置。
希望这可以帮助。
如果从源代码编译,则添加extension=php_openssl.dll
到php.ini文件可能无法正常工作。
要解决此问题,请打开命令提示符并键入 php -i
。向上滚动到第一行,它将告诉您有关php.ini文件的最新错误。
要解决该问题,请找到php_openssl.dll
文件,对我来说,该文件位于编译输出的同一目录中:
C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS
因此,只需将扩展名所在的目录添加到php.ini
:
extension_dir = "C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS"
希望错误会消失
%PATH%
,也许Composer在其他位置而不是WampServer处寻找PHP。