composer create-project flarum/flarum . --stability=beta
我尝试运行这个命令,但它给了我这个错误。
[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.
我尝试将“extension=php_openssl.dll”添加到“php.ini”,但仍然出现此错误
我也发生了同样的错误。我通过关闭 Composer 的 TLS 来修复它,它不安全,但我承担了我的开发机器上的风险。
尝试这个:
composer config -g -- disable-tls true
并重新运行您的 Composer。它对我有用!
但它不安全,不推荐用于您的服务器。官网说:
如果设置为 true,所有 HTTPS URL 将改为使用 HTTP 进行尝试,并且不执行网络级加密。启用此功能存在安全风险,不建议这样做。更好的方法是在 php.ini 中启用 php_openssl 扩展。
如果您不想在您的机器/服务器中启用不安全层,请设置您的 php 以启用 openssl,它也可以工作。确保已安装 PHP Openssl 扩展并在 php.ini 文件中启用它。
要启用 OpenSSL,请在 php.ini 文件中添加或查找并取消注释此行:
Linux/操作系统:
extension=php_openssl.so
视窗:
extension=php_openssl.dll
并在需要时重新加载您的 php-fpm / web-server!
更新:
自 PHP 7.4 起,该扩展名为 extension=openssl
(适用于 Windows)。
根据作曲家 reference 的说法,有两个相关选项:disable-tls
和 secure-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"
并简单地删除了 ;在 "extension_dir = "ext" 前面,注意这仅适用于 Windows,如果您运行的是不同的操作系统,请删除第一个 extension_dir 前面的分号。
我不知道为什么我的还没有被标记,但如果你有问题,这只是要寻找的东西。
由于 openssl 和扩展目录而出现此问题,因此在 php.ini
文件中的扩展下方取消注释
extension=php_openssl.dll
extension_dir = "ext"
它适用于我的机器。
要启用 openssl,请进入 php.ini 并启用此行:
extension=php_openssl.dll
如果您不想启用 openssl,您可以设置为 composer not use openssl 与此命令:
composer config -g -- disable-tls true
然而,这是一个安全问题。
/usr/local/share/ca-certificates/
,要在 Windows 上执行此操作,您放弃并找到另一份工作。
在尝试了一切之后,我终于设法解决了这个问题。以上建议的解决方案都不适合我。我的系统是一台 PC Windows 10。为了进行排序,我必须更改位于此处 C:\Users\[Your User]\AppData\Roaming\Composer\
的 config.json
文件。在那里,你会发现:
{
"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% 的情况,但正如我所说,这对我不起作用。希望这可以帮助某人。
快乐编码!
我有同样的问题。我尝试了此页面上列出的所有内容。当我重新安装 Composer 时,它像以前一样工作。我有一个 PHP 版本不匹配,通过新安装与安装在我的系统环境变量中的 PHP 路径建立依赖关系得到了纠正。
我不推荐使用 composer config -g -- disable-tls true
方法。
顺便说一下,扭转这种情况的方法是composer config -g -- disable-tls false
。
我只是添加它,因为它对我有用,我使用开发人员选项激活安装作曲家(只需选中安装程序中的框)
https://getcomposer.org/Composer-Setup.exe
我认为当您将新版本的 php 添加到 wamp 服务器时可能会出现此问题。如果这样做,您必须检查 extension_dir 变量是否配置为“env”。
然后检查 phpx.x/ext 文件夹中是否存在 php_openssl.dll。如果没有 php_openssl.dll,你必须在这里下载它:http://www.telecharger-dll.fr/dll-php_openssl.dll.html
如果仍然无法正常工作,请通过运行以下 cmd 命令检查您的 apache 服务器是否使用了正确的 php.ini 文件:
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)
如果加载的配置文件返回(无),您必须检查您的 appache/apache2.4.41/conf/httpd.conf 文件是否配置了正确的 phpIniDir 和正确的模块。
它必须是这样的:
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 配置的)它一定是我喜欢的
https://i.stack.imgur.com/xztzn.png
https://i.stack.imgur.com/snKO7.png
composer config --global disable-tls true
composer config --global disable-tls false
对于 Windows 10 上的我来说,这些都不起作用......我已将本地服务器从 WAMP 更改为 Laragon,并且必须在以下环境变量中添加 php.ini 的新路径:
控制面板 --> 高级系统设置 --> 环境变量 --> 路径(双击) --> 浏览...然后导航到 php.ini 并单击确定。
之后需要重新启动,现在作曲家就像一个魅力!
尝试安装 Magento 时,我在新的家庭服务器上的 IIS 上遇到了这个问题。为了修复它,我在我的 php.ini 中添加了上述内容:extension=php_openssl.dll,然后在 Windows 10 Pro 上重新启动了我的 IIS 服务器。
不定期副业成功案例分享