Просто настройте веб-сервер 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 перезагрузить.
Какие-либо предложения?
Заранее спасибо.
Это содержание / и т.д. / 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л? (просто чтобы убедиться, что он выполнен)
Я просто сделал кое-что, что, как мне кажется, устранило проблему. Я вернул обратно:
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