安装Composer失败,显示“缺少openssl扩展”错误。

9
我正在尝试安装Composer,但是遇到了以下错误:
"Some settings on your machine make Composer unable to work properly. Make sure that you fix the issues listed below and run this script again: The openssl extension is missing, which means that secure HTTPS transfers are impossible. If possible you should enable it or recompile php with --with-openssl"
我已经进入php.ini-production并取消注释:"extension=php_openssl.dll"。
但这仍然无法解决问题,我还需要做些什么吗?

可能是Composer警告:openssl扩展丢失。如何在WAMP中启用的重复问题。 - François Breton
6个回答

4
如果您在Windows上使用MAMP,则需要将php.ini-development的扩展名更改为php.ini,然后将此行;extension_dir = "ext"粘贴到php.ini文件中,在第一个扩展出现之前,并取消注释这另一行;extension=php_openssl.dll,删除前缀分号。不要忘记重新启动Apache。

php.iniC:\MAMP\conf\phpx.x.x复制到C:\MAMP\bin\php\phpx.x.x - Mike
我还不得不将我的安装路径从“C:\Program Files\php”移动到“C:\php”。 - Drellgor

3
我怀疑“php.ini-production”是适用于生产环境的虚拟配置文件。在控制台上执行php -i命令,找到“php.ini”的路径,以查看它期望ini文件存放的位置。通常期望的是“php.ini”,但实际上可能并不存在——如果不存在,请将php.ini-development(或类似文件)复制到所需位置。
这段话位于(非常长的)输出的顶部,因此您可能会发现将其重定向到文件中会很有帮助(php -i > C:\phpinfo.txt)。

1
谢谢,伙计。你能解释一下这部分吗:在控制台上执行php -i命令并找到'php.ini'路径吗?我完全是新手... - keynesiancross
你在使用Windows系统,对吧?打开一个cmd窗口,然后输入那个命令。试一下,如果不行的话,在Windows系统中最常见的问题是设置PATH路径。如果出现“找不到php”的错误,请搜索“Windows PHP路径”。 - halfer
我只是将php.ini-production复制到一个名为php.ini的新文件中,问题就解决了。为什么PHP 7不直接提供一个名为php.ini的文件,而是提供两个名为php.ini-development和php.ini-production的文件呢? - matthewpark319
@MatthewPark:这可能是由你的Linux发行版维护者做出的决定。你使用的是什么操作系统? - halfer
@halfer 我在使用 Windows 10。 - matthewpark319

3

制作一个php.ini(例如从php.ini-production),使用管理员身份在编辑器中打开它,删除extension=php_openssl.dll前面的注释分号;,正确设置extension_dir,然后保存文件。之后应该就可以正常工作了。但是再次强调:以管理员身份打开和编辑php.ini


我做了这个,但是没有任何改变。 - Charith Prabhagya

3
你还需要取消注释扩展目录。例如,在你的php.ini文件中找到这一行:
;extension_dir = "ext"
去掉前面的分号并保存文件。我相信这样就可以了。
记得以管理员身份打开你的php.ini文件。

谢谢,这真的帮了我很多 :) - user5307594

1
在WAMP服务器中编辑这些文件:

D:\wamp\bin\php\php5.3.10\php.ini

或者

D:\wamp\bin\php\php5.4.12\php.ini (基于版本)

不要使用WAMP服务器菜单中的php.ini,它将无法工作。前往wamp的根目录,并按照上面所示以D作为根目录。


1

在更改php.ini文件中的任何内容之后,您需要重新启动服务器,请确保首先这样做。


我只是想在本地安装它... 这是否意味着重新启动我的计算机?也就是说,我下载了这个压缩文件并解压了它... 这就是我所做的全部。 - keynesiancross
@keynesiancross 当您安装新的php扩展时,需要重新启动php进程,以便它实际上可以访问该扩展。您可能已经安装了它并编辑了配置文件,但仍然需要重新启动php进程,以便它重新加载带有新扩展名的配置文件(.ini)。这取决于您使用的Web服务器而有所不同。如果您正在使用apache2(如果您正在使用apache1,则使用httpd而不是apache2)和mod_php,则使用sudo service apache2 restart,如果您正在使用php-fpm,则使用sudo service php-fpm restart。 - echochamber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接