我有一个 Apache 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"
有什么想法可以尝试吗?
这是一个 PHP 错误。启用 PHP 错误显示表明,当我手动运行脚本时我没有看到它的原因是因为我以 root 身份运行它并且错误是缺少在目录中写入临时数据的权限。
确保到 php 文件的文件夹路径中没有 .htaccess 文件。也就是说,如果路径是 /var/www/html/a/b/test.php。确保 /var/www/html、/var/www/html/a、/var/www/html/a/b 文件夹中没有 .htacces 文件。如果有 .htaccess 文件,则将它们重命名为其他名称,然后重试。
大多数情况下,由于 .htaccess 文件错误,我会收到 500 个错误,此后不再显示在简单的“ls”上,很难理解它们是问题的根源。
您是通过 libapache2-mod-php (mod_php) 还是通过 FastCGI 之类的东西调用 PHP?请您告诉我们您安装的版本,您的发行版,检查文件/目录权限并尝试;
如果您的日志位于不同的位置,或者进行更改以适应。然后尝试使用您的浏览器访问该站点,以及将“test.php”与以下内容组合在一起会得到什么:
它是否正确显示页面?