php post 奇怪的问题

最近使用docker搞了一个Php8的版本,但是遇到一个很奇怪的问题。在post数据的后返回的结果会把请求体的参数一起返回回来 比如如下

curl -X POST \
  http://test.com/open/test \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: d357ac6d-c2f0-237f-baa8-dbc6c759d6e2' \
  -d '{
    "commodity_id": 1
}'

返回的结果如下

{"commodity_id": 1}{"code":success}

真正的相应前面带了个请求体。
目前docker php8.0.2有这个问题,PHP-BUG网站上也有这个问题描述
https://bugs.php.net/bug.php?...

我的环境:
机器:CentOS Linux release 7.8.2003 (Core)
php-docker : https://github.com/docker-lib...
nginx: nginx/1.12.1
测试: 使用Post方法提交表单信息,刚启动的容器是正常的,过一段时间就会出现描述的问题,测试文件内容只需要一个Index.php 包含内容

<?php
echo 'string'; 
exit;

测试数据:

curl -X POST \
  http://test.com/ \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'postman-token: 7783c00c-347f-e74f-7316-2a9bb632eb47' \
  -d points=10

我本地的mac环境倒是正常的,但是服务器不正常

阅读 4k
4 个回答

这和PHP无关,是你的接口自己输出的内容。

新手上路,请多包涵

get_included_files()只有一个 index.php文件

index.php文件内容

<?php
echo 'success';
exit;

使用Postman,请求方式选择Post,选择form-data 或者是raw
请求体数据无所谓,返回结果会偶尔产生请求体添加在返回结果前面

其他就没什么东西,很简单。还有一个问题就是我打印php配置文件的时候 auto_prepend_file 这个值会变化

我也遇到了这个问题,配置都正确,但是总是会有这个问题出现.
后来看了:https://bugs.php.net/bug.php?...
也有同样的问题,我依照描述,php.ini修改为了:
allow_url_include = Off
auto_prepend_file = none;
并且将php-fpm的监听端口从9000变更为了其他端口,我变为了8999,
到目前为止,10几个小时了,还没有在发生之前的问题了,楼主可以借鉴一下
你还需要挂载出来一个文件,修改配置的,下图所示:
image.png

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题