原因通常是 PHP 配置。但也有可能是 HTTP 请求被破坏或网络服务器配置错误。
您可以使用 PHP 配置来控制配置。对于网络服务器也是如此。对于中断的请求,您需要检查网络是否正常,但您无法始终控制它,因为通常您无法控制整个网络。所以你只能关心你控制的部分。
最好的方法是首先找出哪些部分对此没有影响。这意味着您应该首先排除网络是问题(传入请求是否正常?您可以使用网络嗅探器进行验证)。
下一步是确保网络服务器正常工作。大多数网络服务器都可以帮助您,请在此处查看您使用的产品的文档以获取您的选项。
例如,如果您使用的是 Apache,这可以是LimitRequestBody之类的设置,或者如果您安装了安全模块,则可以设置这些模块。
如果您确定实际上是 PHP 导致了问题:
就 PHP 配置而言,该配置在 PHP 手册中进行了概述和记录。你应该从
以下选项通常是最相关的。全部都需要设置php.ini
或.htaccess
仅设置(使用这些将不起作用ini_set()
):
这些是一些常见的罪魁祸首,但我无法概述所有可能起作用的配置设置。如果您有损坏的数据,这些核心 php.ini 指令中的许多都可以应用。特别检查那里的HTTP和数据部分。
一件非常重要的事情是——当你进行输入处理时——你需要记录错误。在数据到达 PHP 时以及它在哪里被破坏时,这些错误只能记录到磁盘 - 不显示。因此,您需要启用错误日志并遵循错误日志。有关PHP 错误处理的相关配置,请参见 PHP 手册中的不同部分: