为什么内部服务器错误并不总是记录错误?

为什么内部服务器错误并不总是记录错误?

我正在 Apache 上使用 mod_wsgi 设置 Django,并且一直在调试错误日志中出现的错误。但是,我无法始终让它创建日志。

我的过程大致如下。目前只是猜测,但每尝试 10-15 分钟,我就能让日志出现。

  • 打开该 URL 几次,浏览器中就会出现内部服务器错误
  • 重新启动 Apache
  • 刷新 Filezilla 中的目录
  • 关闭并重新打开 PuTTY 和 Filezilla
  • 重复此操作,直到出现日志,然后将其删除,这样您就知道新的日志文件仅包含新的错误

我知道,这逻辑很糟糕。我只是想知道,到底是什么原因导致错误被记录或不被记录?

答案1

首先,您不应该删除日志,而应该清空它们。您可以通过不向文件中添加任何内容或用空白文件覆盖它来做到这一点。第一种是最好的。如果您决心删除该文件,您应该重新启动服务,这将正确生成新日志。像您正在做的那样删除打开的文件会弄乱文件,包括 Web 服务器进程和操作系统。这应该会给您带来更多的一致性。

至于“内部服务器错误”,这是一个通用术语。您需要使用 HTTP 代码,以便清楚了解浏览器实际遇到的错误。例如 500、501、400、404 等。还要确保您正在检查 Web 服务器进程的所有日志文件。例如,在 Apache 中,可能有一个用于特定 vhost 的访问日志,即 mydomain.com.aceess.log,一个用于错误的日志,即 mydomain.com.error.log,以及通用的 access.log 和 error.log,以及 othervhost.access.log 等。

由于您缺乏具体信息,因此很难帮助您解决问题。

相关内容