【发布时间】:2011-05-26 13:04:45
【问题描述】:
我编写了一个简单的 api,将数据从一台服务器汇集到另一台服务器。它是一个非常简单的基于 $_GET 的 API,其中所有数据都作为 GET 数据附加到 url。
所以我得到类似的东西:
http://example.com/api.php?param1=afdsa&param2=TTTT&....etc.
为了调用它,我使用file_get_contents($url);
首先 - 我真的不需要回复的内容。我只需要“触摸”该网址,它就会生效。
我的主机(共享、justhost)出现问题,我已经转移到 VPS。 我的 api 调用开始超时,当我检查了 apache error.log 时,我看到了:
"failed to open stream: File name too long in ..."
确实 - $url 字符串大约有 450 个字符。
问题是 - 我在哪里更改文件长度的设置。它与硬盘驱动器文件系统不同,因为我自己的计算机得到相同的字符串,没有问题,也没有错误。 此外 - 共享主机对该网址没有任何问题。
VPS 运行 ubuntu 10.04 lts 和 PHP 版本 5.3.2-1ubuntu4.9
感谢任何帮助,已经坐了两天
已解决
好吧,当您认为您知道问题出在哪里但实际上不知道时,您知道是怎么回事吗?好吧 - 这就是问题所在。
我已经重写了我的 API,所以它所要做的就是print_r($_GET);,你知道什么 - 它运行良好。
所以我开始一一添加,发现堆叠脚本的是一个php邮件函数。为什么?我不知道,也许邮件设置不正确 - 但现在,当我注释掉邮件时 - 一切正常。
它仍然不能解释我的“文件长”错误,但没关系。谢谢大家
【问题讨论】:
-
我有一些你可以考虑的事情 - 如果你需要做的只是“点击” URL 让一切正常工作,为什么还要使用
file_get_contents?有 cURL,有header().. -
实际上,如果我将所有 url 粘贴到浏览器地址栏,脚本也会堆栈,这不是我如何称呼它,而是其他东西。脚本运行,但我收到“PHP 通知:未定义索引:”,这需要很长时间
-
嗯,是php邮件问题,编辑了我的帖子
标签: php api file-get-contents server-error