Apache 失败并出现 500 错误

Apache 失败并出现 500 错误

我有一个 Apach Http Server,它的一个虚拟主机开始出现故障,并出现 500 错误。我直接查看日志,触发问题,结果是访问日志中有正常条目,错误日志中没有提及。

这是运行 PHP 所以我运行

php index.php

在应用程序的目录中,它运行良好。这不是 PHP 问题,或者说不太可能。

我将 LogLevel 设置为调试,在错误日志中看到的内容如下:

[Sat Jul 04 08:41:10 2009] [error] [client 84.72.21.12] File does not exist: /var/www/example.com/public/favicon.ico, referer: http://example.com/

并在访问日志中:

84.72.21.12 - - [04/Jul/2009:08:40:29 -0400] "GET / HTTP/1.1" 500 - "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.18 (KHTML, like Gecko) Version/4.0.1 Safari/530.18"
84.72.21.12 - - [04/Jul/2009:08:40:29 -0400] "GET /favicon.ico HTTP/1.1" 404 361 "http://example.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.18 (KHTML, like Gecko) Version/4.0.1 Safari/530.18"

还有什么想法可以尝试吗?

答案1

这是一个 PHP 错误。启用 PHP 错误显示后,我才发现这个错误,而我在手动运行脚本时没有看到这个错误,是因为我以 root 身份运行脚本,错误是缺少在目录中写入临时数据的权限。

答案2

确保文件夹路径中没有 .htaccess 文件,直到 php 文件为止。如果路径是 /var/www/html/a/b/test.php,则确保 /var/www/html、/var/www/html/a 和 /var/www/html/a/b 文件夹中没有 .htacces 文件。如果有 .htaccess 文件,则将其重命名为其他名称,然后重试。

大多数情况下,由于 .htaccess 文件损坏,我会收到 500 错误,但此后在简单的“ls”上不会显示,很难理解它们是问题的根源。

答案3

您是通过 libapache2-mod-php (mod_php) 还是通过 FastCGI 之类的东西调用 PHP?请告诉我们您安装的版本、发行版,检查文件/目录权限并尝试;

tail -f /var/log/apache2/access.log /var/log/apache2/error.log

或者,如果您的日志位于不同的位置,请进行修改。然后尝试使用浏览器访问该网站,将“test.php”与以下内容放在一起,您会得到什么:

<?php
  phpinfo();
?>

它能正确显示页面吗?

相关内容