PUT / DELETE数据在5次请求后丢失

我只是试图在我的PHP应用程序中执行PUT / DELETE请求,但在前5次请求后,数据丢失。

为了说明这个问题,我将代码简化为:

的index.php

$h = fopen('php://input', 'r');
var_dump(fread($h, 1024));
die();

CLI输入

curl -X PUT http://cms.dev.com -d '{"foo":"bar"}'

所以,在我运行的前5次,我得到:

string(13) "{"foo":"bar"}"

然后,从6日起,我得到:

string(0) ""

我正在运行PHP版本5.6.0beta1和Apache / 2.2.26,通过Mac端口安装在OSX 10.9.3上。

POST工作正常。

编辑可能值得注意的是,这可以在其他两位同事的MacPorts设置上复制,但不能在MAMP上看起来正确。

有没有人有想法? 这让我疯狂!

谢谢,托德


我无法使用内置的网络服务器来重现这一点,这可能表明了apache和php之间的交互。

尝试运行: -

php -S localhost:8001

在一个终端和

for n in `seq 1 100`; do curl -X PUT http://localhost:8001 -d '{"foo":"bar"}'; done

在另一个 - 看看它是仅限于PHP或在mod_php级别。

我的测试是在5.4.9 fwiw的Linux机器上进行的。


升级到PHP 5.6beta3修复了这个问题。

一定是PHP 5.6beta1中的一个bug!

希望这会帮助别人:)

链接地址: http://www.djcxy.com/p/41047.html

上一篇: PUT/DELETE data is lost after 5 requests

下一篇: RESTful URL for RPC