Назад | Перейти на главную страницу

Настройка виртуального хоста Apache всегда терпит неудачу после перезагрузки

Просто настройте веб-сервер apache в Debian 6 и добавьте следующий виртуальный хост:

<VirtualHost 123.45.67.89:80> 
   ServerAdmin admin@mysite.com 
   ServerName mysite.com 
   ServerAlias www.mysite.com 
   DocumentRoot /srv/www/mysite.com/public_html 
   ErrorLog /srv/www/mysite.com/logs/error.log 
   CustomLog /srv/www/mysite.com/logs/access.log combined 
</VirtualHost>

И я включаю его (также включен vhost по умолчанию):

a2ensite mysite.com 

Перезарядка:

/etc/init.d/apache2 reload 

Мой / etc / hosts выглядит следующим образом:

127.0.0.1      localhost.localdomain   localhost 
123.45.67.89   myhost.mysite.com       myhost

А затем я протестировал, обратившись к mysite.com и www.mysite.com. На данный момент все работает нормально.

Проблема в том, что каждый раз, когда я перезагружаюсь, я больше не могу получить доступ к своему сайту. Не работает с mysite.com и www.mysite.com.

После возни и мониторинга журнала кажется, что после перезагрузки apache всегда ищет файлы в / и т.д. / apache2 / htdocs. Что не указано ни в каких конфигурационных файлах.

Единственный способ заставить его снова работать после перезагрузки - это выпустить /etc/init.d/apache2 перезагрузить.

Какие-либо предложения?

Заранее спасибо.


[ОБНОВЛЕНИЕ 1]

Это содержание / и т.д. / apache2 / сайты-включены /

lrwxrwxrwx 1 root root 26 May  4 13:41 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 29 May  4 11:12 mysite.com -> ../sites-available/mysite.com

И это последняя строка /var/log/apache2/error.log сразу после загрузки

[Wed May 04 13:43:17 2011] [notice] caught SIGTERM, shutting down
[Wed May 04 13:43:37 2011] [notice] Apache/2.2.16 (Debian) configured -- resuming normal operations

Как я могу убедиться, что apache запускается при загрузке? Выдача:

update-rc.d apache2  defaults

Выведет:

update-rc.d: using dependency based boot sequencing

Должен ли я попытаться поставить /etc/init.d/apache2 перезагрузить внутри /etc/rc.locaл? (просто чтобы убедиться, что он выполнен)


[ОБНОВЛЕНИЕ 2]

Я просто сделал кое-что, что, как мне кажется, устранило проблему. Я вернул обратно:

NameVirtualHost 123.45.67.89:80

к

NameVirtualHost *:80

А затем измените все файлы vhost с:

<VirtualHost 123.45.67.89:80>

к

<VirtualHost *:80>

После этого просто работает. Пытался перезагрузиться 2–3 раза и все еще работает. Я не знаю, хорошая ли это обстановка.

Причина, по которой я использую IP-адрес в первую очередь, заключается в том, что об этом сказано в wiki / doc / library моего провайдера VPS.

Так что я думаю, что пока закрою тему и проведу еще тестирование.

Спасибо, парни.

Решение интересное, ночной.

Я предполагаю, что в момент запуска Apache ваш IP-адрес еще не установлен - либо из-за того, что eth * не работает, либо из-за того, что вы используете статический DHCP и ждете ответа от DHCP-сервера и т. Д. Итак, Apache (следует предположение) не загружает ни определение VirtualHost, ни директиву NameVirtualHost, поскольку IP-адрес в настоящее время не настроен на сервере и поэтому он, возможно, никогда не может совпадать. Я предполагаю, что он по-прежнему связывает порт как *: 80, потому что устройство обратной связи является доступный, и поэтому он может разумно запуститься. В результате после запуска eth * вы прослушиваете apache, но не настроили VirtualHost.

Можете ли вы опубликовать следующее:

Содержимое / etc / apache2 / sites-enabled /

Содержимое /var/log/apache2/error.log во время перезагрузки (после загрузки в нижней части журнала должны появиться журналы запуска.

Очень-очень низкий уровень, не решающий проблему, решение было бы просто

put /etc/init.d/apaceh2 reload inside /etc/rc.local.

Наконец вы уверены, что apache запускается при загрузке? Выполните следующее

update-rc.d apache2  defaults