composer create-project flarum/flarum . --stability=beta
Run Code Online (Sandbox Code Playgroud)
我尝试运行此命令,但它给了我这个错误.
[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.
Run Code Online (Sandbox Code Playgroud)
我试图将"extension = php_openssl.dll"添加到"php.ini",但它仍然出现此错误
Vin*_*ros 112
我发生了同样的错误.我通过关闭Composer的TLS修复它,它不安全,但我承担了开发机器的风险.
试试这个:
composer config -g -- disable-tls true
Run Code Online (Sandbox Code Playgroud)
并重新运行您的Composer.它对我有用!
但它不安全,不推荐用于您的服务器.官方网站说:
如果设置为true,则将使用HTTP尝试所有HTTPS URL,并且不执行网络级加密.启用此功能存在安全风险,不建议这样做.更好的方法是在php.ini中启用php_openssl扩展.
如果你不想在你的机器/服务器中启用不安全的层,那么设置你的php以启用openssl它也可以工作.确保已安装PHP Openssl扩展并在php.ini文件上启用它.
要启用OpenSSL,请在php.ini文件中添加或查找并取消注释此行:
Linux的/ OSX:
extension=php_openssl.so
Run Code Online (Sandbox Code Playgroud)
视窗:
extension=php_openssl.dll
Run Code Online (Sandbox Code Playgroud)
如果需要,重新加载你的php-fpm/web-server!
Vru*_*aut 17
出现此问题是由于 openssl 和扩展目录,因此取消php.ini
文件中的扩展名下方的注释
extension=php_openssl.dll
extension_dir = "ext"
它在我的机器上工作。
Mar*_*ler 14
根据作曲家的参考,有两个相关的选择:disable-tls
和secure-http
.
nano ~/.composer/config.json
...
{
"config": {
"disable-tls": true,
"secure-http": false
}
}
Run Code Online (Sandbox Code Playgroud)
然后它抱怨很多:
You are running Composer with SSL/TLS protection disabled.
Warning: Accessing getcomposer.org over http which is an insecure protocol.
Run Code Online (Sandbox Code Playgroud)
但它执行composer selfupdate
(或其他).
虽然不能简单地在Linux上"在php.ini中启用SSL"; PHP需要使用配置为shared
库的openSSL进行编译- 以便能够从PHP CLI SAPI访问它.
Cla*_*Luz 11
要启用openssl,请进入php.ini并启用此行:
extension=php_openssl.dll
Run Code Online (Sandbox Code Playgroud)
如果你不想启用openssl你可以设置为composer不使用openssl与此命令:
composer config -g -- disable-tls true
Run Code Online (Sandbox Code Playgroud)
但是,这是一个安全问题.
我有完全相同的问题,无法找到解决方案,所以在思考并寻找一段时间后,我认为我的PHP.INI显然没有查找我的PHP扩展的正确目录,所以我去了:
"可加载扩展(模块)所在的目录." 并找到以下内容:
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
;extension_dir = "ext"
Run Code Online (Sandbox Code Playgroud)
并简单地删除; 在"extension_dir ="ext"的前面,请注意这仅适用于Windows,如果您运行的是其他操作系统,请删除第一个extension_dir前面的分号.
我不知道为什么我的没有标记,但如果你遇到问题,它只是寻找的东西.
小智 7
经过尝试一切之后,我终于成功解决了这个问题。上述建议的解决方案都不适合我。我的系统是 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'
}
}
}
Run Code Online (Sandbox Code Playgroud)
您需要更新 packagist repo url 以指向“https”url 版本。
我知道上面选择的解决方案适用于 95% 的情况,但正如我所说,这对我不起作用。希望这对某人有帮助。
快乐编码!
小智 6
我有同样的问题。我尝试了此页面上列出的所有内容。当我重新安装 Composer 时,它像以前一样工作。我遇到了 PHP 版本不匹配的问题,该问题已通过新安装得到纠正,该安装与系统环境变量中安装的 PHP 路径建立了依赖关系。
我不推荐这种composer config -g -- disable-tls true
方法。
顺便说一句,扭转这个局面的方法是composer config -g -- disable-tls false
。