gpt4 book ai didi

php - file_get_contents 和 curl 不能通过 php 工作,但可以在 CLI 上工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:53 28 4
gpt4 key购买 nike

当我将 file_get_contents 与 url(http://example.com 或其他)一起使用时,它会在不同的上下文、user_agent 等情况下返回 false:

file_get_contents(http://example.com):failed to open stream: operation failed

然而,当我们对本地文件使用 file_get_contents() 时,它起作用了。但是当我们尝试通过http访问任何文件时,它会显示上述错误。

我使用 cURL 进行了同样的尝试,但出现了以下错误:

cURL Error (7): couldn't connect to host

根据stackoverflow上的一些解决方案,我们在php.ini文件中更改了这个设置:

ini_set('allow_url_fopen', 1);

在包含 snoopy class.php 之后,我也使用了 snoopy 库

require "Snoopy/Snoopy.class.php";
$snoopy = new $Snoopy;
fetchtext("http://example.com");
$text = $snoopy->results;

它也给出了一个空响应。

如果我使用终端 cURL 或 wget 相同的 URL,它会完美运行。但当文件不是本地文件(通过 HTTP)时,它在 PHP 代码中不起作用。

服务器详细信息:

Debian GNU/Linux 7.6(喘不过气来)

Apache/2.2.22 (Debian)

PHP 5.4.45-0+deb7u7

最佳答案

在 Debian 中,会有一个组 aid_inet。 Apache 应该是该组的成员才能允许访问网络。

运行以下命令获取apache用户。在我的机器中它是 www-data

cat /etc/passwd

尝试使用此命令将 apache 用户添加到 aid_inet 组中。

usermod -a -G aid_inet www-data

[注意:如果您有不同的 apache 用户,请使用您自己的]

现在,再次运行您的 PHP 代码进行测试。它应该有效。

关于php - file_get_contents 和 curl 不能通过 php 工作,但可以在 CLI 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42786337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com