【问题标题】:Apache 500 server error- logs showing nothingApache 500 服务器错误日志显示什么
【发布时间】:2012-03-14 20:04:09
【问题描述】:

在新安装 PHP 的一些帮助之后。

我已经使用 apache PHP 设置了一个新的 Centos 6.2 服务器,但无法显示错误。 我已经复制了所有网站应用程序文件以及文件夹结构和 /etc/httpd/ 中的所有内容。

当我访问我的网站时,我收到 500 错误或空白页。除了记录 500 错误之外,日志什么也没有显示:

[24/Feb/2012:17:33:25 +1100] "GET / HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1" 405 229 7176

我的 htaccess 看起来像这样: 错误文档 404 /error.php

php_flag  display_errors                  on
php_flag  display_startup_errors          on
php_flag  file_uploads                    on
php_value error_reporting                 6143
php_value max_input_time                  60
php_value post_max_size                   8M
php_value upload_max_filesize             2M
~

所以错误被打开了...

Start of PHP file has:
error_reporting(-1);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

并且 php.ini 将 error_reporting 设置为 E_ALL。

...但是我在屏幕上遇到了一些错误(例如没有关闭字符串),但我的问题比我想象的要大一些,我不知道从哪里开始调试!

所以我想我的问题是——如何开始调试 500 服务器错误?

【问题讨论】:

  • 您的日志条目显示200 状态码。
  • 有时 .htaccess 文件可能会干扰子文件夹中的其他 .htaccess 文件
  • 我知道这是旧的并且已关闭,但我遇到了类似的问题。事实证明,我的代码“”中有短标签。所以我没有“
  • 为什么关闭?关闭此问题的五个用户中只有一个 @hjpotter92 在其标签中具有任何 php 经验。就好像他们单独阅读了标题并认为这是一个 Apache 问题。它不是。它是关于在 PHP(一种编程语言)中查找错误消息。

标签: php apache


【解决方案1】:

当屏幕、Apache error_log 文件和其他任何地方的错误消息令人抓狂地丢失时,我很幸运地通过添加一个不同的 PHP 文件让它们出现,仅将其用于开发:

<?php
 error_reporting(E_ALL);
 ini_set("display_errors", 1);
 include("productioncode.php");
?>

这样,即使 productioncode.php 有编译时错误,上面的代码也会运行,并显示消息,而不是仅仅将前两行放在 productioncode.php 的顶部。

@Jaspreet Chahal 和 @Saiyam Patel - 我刚刚从 access_log 中错误 500 的美好夜晚中恢复过来,例如

77.22.98.222 - - [26/Feb/2012:22:38:41 -0500] "GET /buggycode.php HTTP/1.1" 500 - west-real-estate.com "-" "Mozilla/5.0 (Windows NT 5.0; rv:11.0) Gecko/20100101 Firefox/11.0" "PHPSESSID=hcd04vv9e1a316cr9miauf3bl5" - 0

并且在任何 httpd 日志文件中都没有来自(愚蠢地)编码 { 'foo' => 'bar' } 而不是数组('foo' => 'bar' )的 PHP 错误消息。使用上述技术可以显示详细的错误消息,包括最重要的行号。

【讨论】:

  • 感谢您的建议。不幸的是,OP 正在讨论打开错误但仍然没有打印或记录任何内容的情况。这不会解决这个问题。
  • 嗯,它可能无法解决 OP 的情况,但它会解决一些符合 TFA 主题的问题“Apache 500 服务器错误 - 日志显示无”。 (包括当您进一步限制在源文件中“打开”错误的情况下。)所以我相信这个技巧可能对其他搜索有用。
  • BobStein,你的智慧帮我省了很多麻烦!我终于可以看到我的代码出了什么问题,我收到错误 500 并且日志中没有任何内容,但是通过您的解决方案,我终于能够跟踪这个该死的错误了! @edit 我爱你。在使用您的解决方案显示服务器抛出的确切错误后,我花了 3 分钟来消除我的错误。
【解决方案2】:

Apache 500 服务器错误 这不是 PHP 错误,这是服务器错误(服务器无法处理您的请求) 或者 .htaccess 文件可能是重定向问题

干杯

【讨论】:

  • 是的,伙计,我的 .htaccess 问题.. 感谢您的帮助。你拯救了我的一天..问候男人。干杯..
  • Apache 可以在发生 PHP 致命错误时很好地处理 500 错误。
  • 正如 Mike 所说,错误 500 表示“”对不起,您尝试访问的资源通常有问题。我们不能说它是什么,但它肯定是站在我们这边的。”大多数时候它确实是一个数据库问题,或者会话......有点像应用程序级别的配置。
【解决方案3】:

只需尝试从您的配置文件中检查日志存储在哪里。我猜你显示的是访问日志而不是错误日志。所以只需检查错误日志的存储位置。干杯!正如你所说的它的centos 检查这个目录/var/logs/httpd 并检查error_log 文件。如果是自定义日志,则搜索该文件。

btw 500 是服务器错误,所以对我来说,我认为它与您的配置或数据库连接设置有关。

【讨论】:

  • 感谢您的回复。是的,该目录有错误日志,但里面什么都没有!我不认为它是 htaccess,因为我知道我没有安装 odbc 库并通过回显,这是它停止工作的地方。但我知道这不是唯一的问题,因此需要查看错误。 apache 中是否有需要放大以显示这些错误的日志记录级别?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多