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"
Есть идеи, что еще попробовать?
3 ответа
Это была ошибка 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, переименуйте их в другое и попробуйте снова.
Большую часть времени я получаю 500 ошибок из-за плохого файла.htaccess и с тех пор не отображается на простых "ls", трудно понять, что они являются источником проблемы.
Вы вызываете PHP через libapache2-mod-php (mod_php) или через что-то вроде FastCGI? Пожалуйста, вы можете сообщить нам версии, которые вы установили, ваш дистрибутив, проверить права доступа к файлу / каталогу и попробовать;
tail -f /var/log/apache2/access.log /var/log/apache2/error.log
Или измените, чтобы соответствовать, если ваши журналы находятся в другом месте. Затем попробуйте зайти на сайт с помощью браузера, а также узнать, что вы получите, собрав вместе "test.php":
<?php
phpinfo();
?>
Правильно ли отображается страница?