php 为Composer安装启用SSL

ryevplcw  于 2023-02-07  发布在  PHP
关注(0)|答案(2)|浏览(260)

我知道这个问题在这个网站上到处都是,但是所有的解决方案都没有对我起作用。
运行 composer install 时出现此错误:

In Factory.php line 650:

  The openssl extension is required for SSL/TLS protection 
  but is not available. 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.

我不知道Factory.php是从哪里来的,但它不在我的项目目录中。
我做了所有建议的解决方案,将PHP的php.ini-development文件重命名为php.ini,并取消注解以下内容:

extension=openssl

既然我用的是windows,这也是:

extension_dir = "ext"

我还通过Laragon菜单〉Apache〉SSL〉Enable启用了SSL
我的php.ini文件位于我的laragon文件夹中,如下所示:

C:\laragon\bin\php\PHP7\php.ini

**然后我注意到一些事当我右键单击Laragon的菜单并转到php.ini时,它显示没有找到php.ini文件(即使它位于正确的位置)。

当所有这些都不起作用时,我看到了另一个建议的解决方案,该解决方案要求将php.ini文件也添加到Laragon内的Apache目录中,如下所示:

C:\laragon\bin\apache\httpd-2.4.54-win64-VS16\bin\php.ini

注意,我每次都在重新加载Apache。
但我还是得到了错误。
可能是什么问题?我不想 disable-tls,我也不知道Factory.php文件是什么。
任何帮助都很感激。谢谢。

kpbpu008

kpbpu0081#

我认为在本例中缺少的是PHP示例的证书。
您可以直接从以下位置下载此证书文件:CURL's site
之后你需要做的就是在你的php.ini文件中查找这些条目,特别是[curl][curl]后面的[openssl]
您需要做的是将cacert.pem文件保存在一个位置,最好是Web服务器根目录下的目录,或者您喜欢的位置,并使用绝对目录进行下面的配置。

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "absolute location of where you saved the cacert.pem file"

[openssl]
; The location of a Certificate Authority (CA) file on the local filesystem
; to use when verifying the identity of SSL/TLS peers. Most users should
; not specify a value for this directive as PHP will attempt to use the
; OS-managed cert stores in its absence. If specified, this value may still
; be overridden on a per-stream basis via the "cafile" SSL stream context
; option.
openssl.cafile= "absolute location of where you saved the cacert.pem file"

保存php.ini文件,重新启动服务器,然后重试。这应该可以解决您的问题。

    • 更新**

如果你检查你的PHP信息phpinfo(),你应该有一个类似下面的部分:

如果你不这样做,你可能没有启用openssl。

bnl4lu3b

bnl4lu3b2#

我找到解决办法了。给其他需要的人:
这就是我在上面所做的一切,然后作为第一步,另一个答案说,解决了“没有找到文件”弹出窗口,但为了解决其余问题,我已经找到了我的问题是,在我做以上在php.ini的一切之前,我切换了php版本Laragon正在使用(v8)到v7.4(我一直试图让它工作。)由于某种原因,这会混淆Composer。所以我不得不从我的计算机上卸载Composer本身并重新安装,但是这次我在安装向导中选中developer option来激活它,因为我没有第一次激活它。之后,它就工作了。

相关问题