1. Нужно ли прописывать виртуальные хосты в файл /etc/hosts
У меня там
127.0.0.1 localhost
Если я хочу сдлеать еще один то надо добавить на новой строчке 127.0.0.2 localhost1 ?
Или их можно на один айпи вешать, тогда надо писать 127.0.0.1 localhost localhost1?
2. Какую конструкцию использовать для виртуальных хостов? Вот в файле 00_default_vhosts.conf
вот такие есть варианты:
################# IP-based Virtual Hosts
#
# User admin
# Group admin
# DocumentRoot /home/admin/www/vhost1/htdocs
# ServerName localhost1
# Setenv VLOG /home/admin/www/vhost1/log
# ErrorLogs /home/admin/www/vhost1/log
#
################# Named VirtualHosts
# NameVirtualHost 127.0.0.2
#
# ServerName localhost1
# ServerPath /home/admin/www/vhost1/htdocs/
# DocumentRoot /home/admin/www/vhost1/htdocs
# DirectoryIndex index.html index.htm index.php
#
Вообще я хочу поднять через dynddns сервисы около 30ти сайтов. В наличии около 30ти доменов
2го уровня, я хочу их захостить у себя пока денег нет на выделенный сервер.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
1. Учить матчасть!
Может с общетеориетической части что-то прописывать в /etc/hosts и имеет смысл, но с практической толку от этого — как от козла молока (если не меньше).
Рулит то, что ты пропишешь для нужных тебе доменных имён в DNS.
Как оно должно писаться для случая dyndns сразу скажу: понятия не имею.
2. Для получения конкретного ответа желательно указывать платформу.
Конечно можно догадаться, что речь идёт о Gentoo, но эти детали правильно указывать в явном виде.
3. Почему указываешь localhost? Есть мнение, что при таком изначально порочном подходе никто кроме локальных пользователей твой WWW не увидит (если ты конечно не предполагаешь прятать его за nginx).
4. Можно и на один IP. Ибо есть ещё такая сущность, как порт.
mandriva
localhost потому что сначала я хочу сделать несколько виртуалов которые будет видно только мне, м все проврерить, а уж потом под dyn dns
В Мандриве [тоже] должен быть такой файлик: /etc/services.
Почитай его, просветись относительно списка/назначения стандартных портов.
А зачем мне список что на каком порту висеть должно? Я ето читал в книжке про хацкоров в далеком 2000 году на первом курсе, там список был:)
Прочитано не значит понятно.
Было бы понято, не было бы первого вопроса.
Тебе наверно нужен второй.
Хотя как оно должно настраиваться для ситуации, когда ты заранее не знаешь IP-адреса — не понятно.
В приведённом примере отсутствует объявление логов, что не есть правильно.
Раскомментировать объявление, задать свои значения — и проверять.
Блин который день мучаюсь, ну не работает и все!
localhost работает а остальные отдают 403!
струкутра у всех директорий
/home/admin/www/vhost{номер_хоста}/
одинаковая, и права тоже. Несколько файлов лежащих в htdocs тоже одинаковые.
прямой вызов http://localhost1/test.php тоже отдает 403
Из за чего это может быть?
Апач перезапускаю после изменений.
# cat /etc/hosts
127.0.0.1 localhost localhost1 localhost2 localhost3 localhost4
# cat 00_default_vhosts.conf
NameVirtualHost 127.0.0.1:80
ServerName localhost
DocumentRoot /home/admin/www/vhost0/htdocs
ServerName localhost1
DocumentRoot /home/admin/www/vhost1/htdocs
ServerName localhost2
DocumentRoot /home/admin/www/vhost2/htdocs
ServerName localhost3
DocumentRoot /home/admin/www/vhost3/htdocs
ServerName localhost4
DocumentRoot /home/admin/www/vhost4/htdocs
Неудивительно.
И кому я говорил про то, что для каждого виртуального хоста адресная строка (IP-адрес + порт) должна быть уникальной?!.
И кто тут клятвенно заверял, что осознал сакраментальную роль /etc/services?
Так какого … у тебя ВСЕ виртуальные хосты висят НА ОДНОМ IP-адресе И НА ОДНОМ порту?
> И кому я говорил про то, что для каждого виртуального хоста адресная строка (IP-адрес + порт) должна быть уникальной?!.
Это что за новости? Вовсе не обязательно.
Да, проблема должна решаться записями в /etc/hosts. У меня, например, решается.
Там создаешь строку типа:
И ставишь правильные ServerName. Например:
Судя по всему у тебя все так и прописано…
Тогда:
> прямой вызов http://localhost1/test.php тоже отдает 403
А в логах Apache что? Куда он производит обращение и в чем проблема доступа к этим каталогам?
Вполне вероятно, что в этих каталогах неправильно прописан доступ. Сделай по аналогии со своим /var/www/localhost. Т.е. задать для всех каталогов с правильными Options, Order, Allow…
Интересное уточнение.
Надо будет проверить.
Спасибо.
ЗЫ: Правда, не совсем понятно как оно должно выглядеть для случая публичного IP-адреса и не совпадающего с доменным именем web-server’а именем хоста…
> ЗЫ: Правда, не совсем понятно как оно должно выглядеть для случая публичного IP-адреса и не совпадающего с доменным именем web-server’а именем хоста…
VirtualHost по умолчанию возьмется и все (к другим доступа не будет без соответствующих записей в DNS/файле hosts машины-клиента).
ааа. а в этом-то что не так?
Apache вполне себе программа, ктороая по соответствию IP, port, hostname может выбрать правильный VirtualHost.
более того, можно и это в нагрузкку использовать
то есть? глобальное имя сервера и имя в VirtualHost? никоим образом не связанные вещи. соответствиие виртуального хоста производится по строке «Host:» из запроса, если соответствие оному на указанном IP:port найдено, то отдаёмся найденное, иначе — дефолтное (это для случая NameVirtualHost-а).
или о чём другом речь?
NameVirtualHost 127.0.0.1
ServerName localhost
ServerPath /home/admin/www/vhost/htdocs/
DocumentRoot /home/admin/www/vhost/htdocs
DirectoryIndex index.html index.htm index.php
NameVirtualHost 127.0.0.2
ServerName localhost2
ServerPath /home/admin/www/vhost2/htdocs/
DocumentRoot /home/admin/www/vhost2/htdocs
DirectoryIndex index.html index.htm index.php
способ 2
NameVirtualHost 127.0.0.1
ServerName localhost
ServerPath /home/admin/www/vhost1/htdocs/
DocumentRoot /home/admin/www/vhost1/htdocs
DirectoryIndex index.html index.htm index.php
NameVirtualHost 127.0.0.2
ServerName localhost2
ServerPath /home/admin/www/vhost2.htdocs/
DocumentRoot /home/admin/www/vhost2/htdocs
DirectoryIndex index.html index.htm index.php
потом ишеш файл hosts
127.0.0.1 localhost
127.0.0.2 localhost2
Я один не вижу отличий в последних двух «способах» (не считая чуть разных path’ов)?..
Ну и зачем все эти извращения с разными IP и портами, когда Apache прекрасно разбирается с кучей vhost’ов (но разными именами) на одном IP:port?
нет, не ты один.