【问题标题】:How to Debug Error 400: Bad Request? (PHP)如何调试错误 400:错误请求? (PHP)
【发布时间】:2013-09-03 15:50:47
【问题描述】:

有时,我尝试将 mp3 上传到我的服务器,它会收到“400:错误请求”错误。它有时有效,有时无效。我要调试这个!

我想知道是否有办法通过 php 记录错误,以及为什么它是一个错误请求的更详细的原因?我已经搜索并找不到解决方案。谢谢。

【问题讨论】:

  • 你的网络服务器日志是第一位的。
  • 你的上传操作是如何参与PHP的?
  • 4xx HTTP 错误是客户端错误。客户端请求了一个不存在的资源 (404),或者它无权查看该资源 (401...403),或者 HTTP 请求不完整或看起来根本不像 HTTP 请求 (400)等等。如果 PHP 代码没有生成 400 响应,那么 PHP 代码甚至不会针对这些请求运行(并且没有什么可调试的)。在这种情况下,代码由 Apache 生成,它不会调用 PHP 解释器,因为它没有收到有效的 HTTP 请求。
  • HTTP response codes 的维基百科页面提供了可以帮助您的线索:"400 错误请求:由于明显的客户端错误(例如,格式错误的请求语法,大小太大..." -- 我不了解 Apache,但 PHP 对其接受的上传文件的大小使用(可配置的)上限。

标签: php apache logging


【解决方案1】:

首先要查看的是您的 Apache 日志。假设您在 Linux 上,访问日志的位置类似于 /var/log/apache/access_log,错误日志的位置为 /var/log/apache/error_log(尽管正如 George Appleton 在下面指出的,错误请求不会记录在错误日志中)。您还可以使用error_log function 将消息写入错误日志。

您还可以考虑使用 Xdebug 来调试您的 PHP 代码。

【讨论】:

  • 错误请求不是错误,因此不会出现在您的 apache error_log 中
  • @GeorgeAppleton 你是对的,我已经相应地更新了我的答案
猜你喜欢
  • 2013-12-17
  • 2015-04-28
  • 2021-07-16
  • 2017-03-04
  • 2015-03-30
  • 2012-03-17
  • 2017-08-04
  • 1970-01-01
相关资源
最近更新 更多