The openssl extension is required for SSL/TLS protection

composer create-project flarum/flarum . --stability=beta

I try to run this command, but it gave me this error.

  [RuntimeException]
The openssl extension is required for SSL/TLS protection but is not availab
le. If you can not enable the openssl extension, you can disable this error
, at your own risk, by setting the 'disable-tls' option to true.

I tried to add "extension=php_openssl.dll" to "php.ini", but it still got this error

350032 次浏览

The same error occurred to me. I fixed it by turning off TLS for Composer, 不安全 but I assumed the risk on my 显影机显影机.

试试这个:

composer config -g -- disable-tls true

重新运行你的作曲家。它对我工作!

但是它是不安全的,而且 not recommended for your Server。官方网站说:

如果设置为 true,则所有 HTTPS URL 将改为使用 HTTP 进行尝试,并且不执行网络级加密。启用此选项会带来安全风险,建议不要启用此选项。更好的方法是在 php.ini 中启用 php _ openssl 扩展。

如果您不想在您的机器/服务器上启用不安全层,那么 设置您的 php 以启用 openssl,它也可以工作。确保已经安装了 PHP Opensl 扩展,并在 PHP.ini 文件中启用它。


要启用 OpenSSL,请在 php.ini 文件中添加或查找并取消注释这一行:

Linux/OSx:

extension=php_openssl.so

Windows:

extension=php_openssl.dll

如果需要,重新加载您的 php-fpm/web-server!

更新:

As of PHP 7.4 the extension is named extension=openssl (known for Windows).

根据作曲家 参考文献,有两个相关的选项: disable-tlssecure-http,其中一个可以使用。只需使用以下命令编辑配置: nano ~/.composer/config.json:

{
"config": {
"disable-tls": true,
"secure-http": false
}
}

然后它会抱怨:

You are running Composer with SSL/TLS protection disabled.
Warning: Accessing getcomposer.org over http which is an insecure protocol.

但它执行 composer selfupdate(或任何命令)。

在 Linux 上不能简单地“在 PHP.ini 中启用 SSL”; PHP 需要使用配置为 shared库的 openSSL 进行编译——以便能够从 PHP CLI SAPI访问它。

我也遇到了同样的问题,而且找不到解决方案,所以在思考和寻找了一段时间之后,我发现我的 PHP.INI 显然没有在正确的目录中找到我的 PHP 扩展,所以我选择了:

“可加载扩展(模块)所在的目录。” 发现了以下内容:

; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
;extension_dir = "ext"

然后简单地删除了; 前面的扩展名 _ dir = “ ext”,注意这只适用于 Windows,如果您运行的是不同的操作系统,请删除第一个扩展名 _ dir 前面的分号。

I have no idea why mine wasn't already unmarked, but it's just something to look for if you are having problems.

To enable openssl go into php.ini and enable this line:

extension=php_openssl.dll

如果你不想启用 openssl,你可以设置为钢琴不使用 openssl 这个命令:

composer config -g -- disable-tls true

然而,这是一个安全问题。

This issue occurs due to openssl and extension directory so uncomment below extensions in php.ini file

extension=php_openssl.dll

extension_dir = "ext"

它在我的机器上工作。

我也有同样的问题。我试了这页上列出的所有东西。当我重新安装 Composer 时,它像以前一样工作。我有一个 PHP 版本不匹配的问题,通过一个新的安装纠正了这个问题,这个问题与我的系统环境变量中安装的 PHP 路径建立了依赖关系。

I DO NOT RECOMMEND the composer config -g -- disable-tls true approach.

顺便说一下,逆转这个的方法是 composer config -g -- disable-tls false

对我来说,在 Windows 10上这些都不起作用... ... 我已经把我的本地服务器从 WAMP 改成了 Laragon,并且不得不在环境变量中添加到 php.ini 的新路径:

控制面板—— > 高级系统设置—— > 环境变量—— > 路径(双击)—— > 浏览... 然后导航到 php.ini 并单击 ok。

在那之后,需要重新启动,现在作曲家的工作像一个魅力!

我只是添加这个,因为它为我工作,我与开发者选项激活安装作曲家(只是选中框中的安装程序)

Https://getcomposer.org/composer-setup.exe

我认为这个问题可能会发生在您添加一个新版本的 php 到您的 wamp 服务器。 如果这样做,则必须检查 Extension _ dir变量是否配置为“ env”。

然后检查您的 X/ext文件夹中是否存在 php _ openssl.dll。如果没有 php _ openssl.dll,你必须在这里下载: Http://www.telecharger-dll.fr/dll-php_openssl.dll.html

If it still not working, check if your apache server use the good php.ini file by running the following cmd command :

php --ini


Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         C:\wamp64\bin\php\php7.4.7x64\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

如果加载的配置文件返回 (无),则必须检查 apache/apache2.4.41/conf/httpd.conf 文件是否配置了正确的 phpIniDir 和正确的模块。

It must be something like this :

PHPIniDir "${APACHE_DIR}/bin"
LoadModule php7_module "${INSTALL_DIR}/bin/php/php7.4.7x64/php7apache2_4.dll"

然后重新启动 apache 并检查“ apache/apache2.4.41/bin/php.ini”(这是 PHPIniDir 上面配置的那个) ,它必须是我喜欢的

enter image description here

在尝试了所有方法之后,我终于把这个问题解决了。以上建议的解决方案对我都不管用。我的系统是 A PC Windows 10。为了得到这个排序,我必须改变 config.json文件位于这里的 C:\Users\[Your User]\AppData\Roaming\Composer\。在那里,你会发现:

{
"config": {
"disable-tls": true},
"repositories": {
"packagist": {
"type": "composer",
"url": "http://repo.packagist.org" // this needs to change to 'https'
}
}
}

您需要更新 packagist repo url 以指向“ https”url 版本。

我知道上述选择的解决方案将工作的95% 的情况下,但正如我说,这不适合我。希望这对谁有帮助。

编程愉快!

enter image description here 您正在运行禁用 SSL/TLS 保护的 Composer。

 composer config --global disable-tls true
composer config --global disable-tls false

当我试图安装 Magento 时,我的新主服务器上的 IIS 出现了这个问题。为了解决这个问题,我在我的 php.ini 中添加了以上的扩展名 = php _ openssl.dll,然后在 Windows 10 Pro 上重新启动我的 IIS 服务器。

我只是有这个问题,但是这些解决方案不工作,因为我安装 PHP 和 Apache 独立没有 Xampp 或 Wamp。

对我来说,问题在于我试图在 Git for Windows 中运行作曲家程序,而不是在 cmd 或 PowerShell 中运行ーー在 PowerShell 中,它运行得很好。

我的解决方案是从我的 /c/php/php.ini(C:\php\php.ini)添加一个符号链接到我的 /bin/目录(C:\Program Files\Git\bin)。

已经有很多答案了,但这对我很有效(以防有人还需要它)

在 Windows 10中从 php 7.3. x 升级到7.4.33,我发现了这个错误,所以只要回到 comper.exe 安装程序,再次运行安装过程,指向新的 php 7.4。文件夹,而且成功了。