PHP/Symfony内置服务器未正确处理请求(dev-env)



经过几个小时的侦查,我在日志中发现了这个错误:

PHP警告:未知:POST内容长度112字节超过限制为50字节

超级奇怪,因为PHP被配置为post_max_size被设置为50MB(这是phpinfo((告诉我的(。

以下是原始HTTP请求内容的示例(根据Symfony profiler(:

comments=THIS%20IS%20A%20TEST&处置=等待%20客户%20响应&id_inactive=-1&id_仓库=1&id_ workorder=218204&

以下是Chrome告诉我它正在发送到服务器的内容:

POST /erp/pause HTTP/1.1
Host: localhost:8088
Connection: keep-alive
Content-Length: 123
Authorization: Basic YYY
sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"
X-Requested-With: XMLHttpRequest
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.59 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
Origin: http://localhost:8088
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://localhost:8088/erp/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: PHPSESSID=XXX
comments: THIS IS A TEST
disposition: Awaiting Customer Response
id_inactive: -1
id_warehouse: 1
id_workorder: 218204
(empty)

Symfony在任何请求对象中都没有任何内容。我正在使用symfony server:start

这是怎么回事?在切换到PHP内置服务器之前,这不是一个问题。大多数请求都能正常工作(事实上到目前为止,所有请求都能(。在使用NGINX的生产中也运行良好。

我很好奇这是否是由于XMLHttpRequest?还是PHP CLI配置问题?我在谷歌上搜索虫子,但一无所获。

注意|这是一个在Docker中运行的开发环境,我对切换回NGINX进行开发不太感兴趣,我更愿意用CLI内置服务器来解决这个问题。

想法?

发现这确实是一个配置问题:

https://www.tutorialfor.com/questions-164484.htm

TL;DR php.ini文件使用了单位MB,而不仅仅是文档中的M。我猜ini解析器读取字符串的最后一个后缀,忽略M,而是看到B,这就是为什么我被限制为50字节的post-data:o

超级烦人的gotcha-希望这能帮助到某人:(

最新更新