Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 找不到包装器";https";使用文件获取内容_Php_Apache_Https_File Get Contents - Fatal编程技术网

Php 找不到包装器";https";使用文件获取内容

Php 找不到包装器";https";使用文件获取内容,php,apache,https,file-get-contents,Php,Apache,Https,File Get Contents,使用https://URL调用文件\u get\u contents()时会出现以下错误: warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? 我已经阅读了10多个问题,所有问题都说要启用extension=php\u openssl.dll 我这样做了,但我仍然有问题 还有什么问题吗?我也有同样的问题。我正

使用https://URL调用文件\u get\u contents()时会出现以下错误:

warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
我已经阅读了10多个问题,所有问题都说要启用
extension=php\u openssl.dll

我这样做了,但我仍然有问题


还有什么问题吗?

我也有同样的问题。我正在尝试访问facebook图表。这并不是因为它无法访问URL,而是因为我没有传递参数,Facebook返回了一个400错误。尝试在将具有有效HTTPS连接的站点上连接到HTTPS。例如,试试这个:

file_get_contents("https://www.namhost.com");

如果这样做有效,您必须了解您连接到的HTTPs连接失败的原因,因为问题不是您无法连接到HTTPs,而是您连接到的内容不符合请求。

请确保在php.ini中将allow\u url\u include和allow\u url\u fopen设置为“On”

如果这些行已注释,请取消注释

此外,您还可以使用以下脚本进行诊断:(取自上的已接受答案)


就像人们说的,检查配置

phpinfo.php

<?php
phpinfo();
?>
解决

要解决此错误,您需要在Web服务器上安装
OpenSSL
PHP包

FreeBSD服务器上,您可能需要安装以下软件包:
php53\u openssl
并重新启动Web服务器

Windows服务器上,打开
php.ini
config文件,只需取消对以下行的注释:

 ;extension=php_openssl
然后重新启动Web服务器。应该解决这个错误


我从中学习到了对我有用的东西,所以功劳归于他

对于Windows 64位上的PHP7,请确保将
libcrypto-1_1-x64.dll
放入环境变量路径。例如:
C:\php\libcrypto-1_1-x64.dll

我只是想加上这个小道消息,因为我为这个问题挣扎了好几个小时,终于找到了一些可行的方法。对于许多WAMP/XAMP/MAMP安装,配置文件放在非标准目录中(即C:\MAMP\conf\php\php7.2.10\php.ini)。您需要确保php cli已加载您正在修改的INI

$ php --ini
如果它没有指向正确的INI,或者根本没有加载任何配置文件,则可以为执行脚本的用户更改PHPRC环境变量,以指向正确修改的INI的正确位置。此外,请确保php.ini中的extension_dir参数包含存储扩展的正确路径


希望这能有所帮助。

在Windows上的新版本PHP上,接受的答案不起作用

对于PHP7.x,需要取消注释(删除行首的
)以下行:

extension\u dir=“ext”


extension=openssl

对我来说,这个问题是在wampserver 3.2.4上安装7.1之后的PHP版本和apache 2.4.23造成的。7.1之后的所有PHP版本都会产生错误“找不到包装器“https”-配置PHP时是否忘记启用它?”和“致命错误:SOAP错误:[HTTP]SSL支持在此版本中不可用”

问题的一个重要指标是,在phpinfo.php上,“注册流套接字传输”仅显示TCP和UDP可用,而SSL传输均不可用


升级到apache 2.4.46b解决了所有与SSL相关的问题,“注册流套接字传输”随后包括SSL、tls、tlsv1.0、tlsv1.1、tlsv1.2和tlsv1.3传输。

我们可能需要更多信息来帮助您。。。我假设您运行Windows时正在尝试加载.dll?您是否可以尝试运行
phpinfo()
并查找一行内容:
OpenSSL支持已启用
?应该在“openssl”标题下。您要连接到哪个URl?你能打开吗?我刚刚发现,当我尝试连接到Facebook URL时,它抛出了一个400错误,因为参数不正确,结果是我的IP地址在设置中设置不正确。也就是说,我可以访问HTTPS链接,但不能访问facebook链接。请参阅以获得合适的答案。仔细阅读答案,并在相应的
php.ini
中启用扩展。不要忘记重新启动Apache。您可以运行
php-i
(cli)或
phpinfo()
(web)来查看扩展是否实际启用了吗?如果您不知道如何查看是否已启用,请发布结果。可能重复@RanjithAlappadan,您的意思是取消注释吗?然后是字符
将对该行进行注释。删除它将使其取消注释(意味着可解析),这不适用于较新版本的PHP。相应的配置行已更改。我在这里发布了一个关于当前版本解决方案的答案。在升级到x64 php之后,我从未想过要更新我的路径。谢谢你,伙计。如果你正在使用WAMP并且安装了不同的PHP7+版本,你需要手动将PATH环境变量更新到你在WAMP中使用的版本。谢谢@АццМ
 ;extension=php_openssl
$ php --ini