系统相关
首页 > 系统相关> > Nginx和PHP-cgi-无法在服务器上获取任何网站的file_get_contents

Nginx和PHP-cgi-无法在服务器上获取任何网站的file_get_contents

作者:互联网

我认为最好用代码来解释这一点.从Web目录:

vi get.php

将此php添加到get.php

<?
echo file_get_contents("http://IPOFTHESERVER/");
?>

IPOFTHESERVER是运行nginx和PHP的服务器的IP.

php get.php

返回该IP托管的(默认)网站的内容.但

http://IPOFTHESERVER/get.php

..返回504网关超时.卷曲也是一样.使用PHP exec命令和GET相同.但是,直接从命令行运行就可以了.

我已经在2个Nginx服务器上复制了它.由于某些原因,nginx不允许我通过PHP与运行该服务器的服务器建立HTTP连接(除非通过命令行).

有人知道为什么吗?

谢谢!

解决方法:

检查您在PHP方面没有遇到工作耗尽,这是我的实验室服务器设置中的问题,该服务器配置为节省RAM.

基本上,我忘了您使用单个工作程序来处理主页显示给最终用户,然后get_file_contents()函数基本上会向同一Web服务器生成单独的HTTP请求,实际上需要2个工作程序才能加载单个页面.

由于第一页使用的是最后一个工作程序,因此无法使用get_file_contents函数,因此Nginx最终在第一页上回复了504,因为没有对反向代理请求的答复.

标签:file-get-contents,php,nginx,curl
来源: https://codeday.me/bug/20191012/1897987.html