Наткнулся недавно на весьма интересную проблему. Сервер работает трудится, всё как говорится хорошо. Но стоит произвести перезагрузку системы — apache выдаёт 404 ошибку. Более того, если после этого выполнить перезагрузку самого apache — всё снова начинает работать:
/etc/init.d/apache2 restart
Т.е. после перезагрузки системы apache выдаёт 404 ошибку, а после перезагрузки самого апача — всё начинает работать.
Подозрение пало на строку в логах апача:
[Sat Mar 10 13:25:39 2011] [error] [client 12.34.56.78] File does not exist: /etc/apache2/htdocs, referer: http://www.example.com/
Т.е. apache после перезагрузки полез в директорию «по-умолчанию», её там не оказалось и он тупо стал отдавать 404 радуясь внеплановому выходному. Надо ли говорить, что после какой нибудь технической перезагрузки оборудования сайт сам не поднимется.
Решение проблемы очень простое, а если быть точным их несколько, в файле /etc/apache2/apache2.conf обязательно должны присутствовать строки либо по указанию директивы ServerRoot:
ServerRoot "/etc/apache2"
Либо о доступных сайтах:
# Include the virtual host configurations:
Include sites-enabled/
Include sites-available/
По мне первое решение гораздо логичнее, но мало ли, может и второе пригодится, как и эта статья тоже.