nixp.ru v3.0

21 января 2017,
суббота,
16:26:19 MSK

Аутсорсинг Linux с компанией «Флант»
evolutionX написал 11 ноября 2007 года в 16:41 (484 просмотра) Ведет себя неопределенно; открыл 10 тем в форуме, оставил 24 комментария на сайте.

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го уровня, я хочу их захостить у себя пока денег нет на выделенный сервер.

Anarchist

1. Учить матчасть!

Может с общетеориетической части что-то прописывать в /etc/hosts и имеет смысл, но с практической толку от этого — как от козла молока (если не меньше).

Рулит то, что ты пропишешь для нужных тебе доменных имён в DNS.

Как оно должно писаться для случая dyndns сразу скажу: понятия не имею.

2. Для получения конкретного ответа желательно указывать платформу.

Конечно можно догадаться, что речь идёт о Gentoo, но эти детали правильно указывать в явном виде.

3. Почему указываешь localhost? Есть мнение, что при таком изначально порочном подходе никто кроме локальных пользователей твой WWW не увидит (если ты конечно не предполагаешь прятать его за nginx).

4. Можно и на один IP. Ибо есть ещё такая сущность, как порт.

evolutionX

mandriva

localhost потому что сначала я хочу сделать несколько виртуалов которые будет видно только мне, м все проврерить, а уж потом под dyn dns

Anarchist

В Мандриве [тоже] должен быть такой файлик: /etc/services.

Почитай его, просветись относительно списка/назначения стандартных портов.

evolutionX

А зачем мне список что на каком порту висеть должно? Я ето читал в книжке про хацкоров в далеком 2000 году на первом курсе, там список был:)

Anarchist
evolutionX
А зачем мне список что на каком порту висеть должно? Я ето читал в книжке про хацкоров в далеком 2000 году на первом курсе, там список был:)

Прочитано не значит понятно.

Было бы понято, не было бы первого вопроса.

evolutionX
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

#

Тебе наверно нужен второй.

Хотя как оно должно настраиваться для ситуации, когда ты заранее не знаешь IP-адреса — не понятно.

В приведённом примере отсутствует объявление логов, что не есть правильно.

Раскомментировать объявление, задать свои значения — и проверять.

evolutionX

Блин который день мучаюсь, ну не работает и все!

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

Anarchist
evolutionX
Блин который день мучаюсь, ну не работает и все!

localhost работает а остальные отдают 403!

струкутра у всех директорий

/home/admin/www/vhost{номер_хоста}/

одинаковая, и права тоже. Несколько файлов лежащих в htdocs тоже одинаковые.

прямой вызов http://localhost1/test.php тоже отдает 403

Из за чего это может быть?

Апач перезапускаю после изменений.

Неудивительно.

И кому я говорил про то, что для каждого виртуального хоста адресная строка (IP-адрес + порт) должна быть уникальной?!.

И кто тут клятвенно заверял, что осознал сакраментальную роль /etc/services?

Так какого … у тебя ВСЕ виртуальные хосты висят НА ОДНОМ IP-адресе И НА ОДНОМ порту?

Дмитрий Шурупов

> И кому я говорил про то, что для каждого виртуального хоста адресная строка (IP-адрес + порт) должна быть уникальной?!.

Это что за новости? Вовсе не обязательно.

Да, проблема должна решаться записями в /etc/hosts. У меня, например, решается.

Там создаешь строку типа:

127.0.0.1 localhost localhost1 localhost2 localhost3 localhost4

И ставишь правильные ServerName. Например:

ServerName localhost1

Судя по всему у тебя все так и прописано…

Тогда:

> прямой вызов http://localhost1/test.php тоже отдает 403

А в логах Apache что? Куда он производит обращение и в чем проблема доступа к этим каталогам?

Вполне вероятно, что в этих каталогах неправильно прописан доступ. Сделай по аналогии со своим /var/www/localhost. Т.е. задать для всех каталогов с правильными Options, Order, Allow…

Anarchist
Dmitry Shurupov
> И кому я говорил про то, что для каждого виртуального хоста адресная строка (IP-адрес + порт) должна быть уникальной?!.

Это что за новости? Вовсе не обязательно.

Да, проблема должна решаться записями в /etc/hosts. У меня, например, решается.

Там создаешь строку типа:

127.0.0.1 localhost localhost1 localhost2 localhost3 localhost4

И ставишь правильные ServerName. Например:

ServerName localhost1

Интересное уточнение.

Надо будет проверить.

Спасибо.

ЗЫ: Правда, не совсем понятно как оно должно выглядеть для случая публичного IP-адреса и не совпадающего с доменным именем web-server’а именем хоста…

Дмитрий Шурупов

> ЗЫ: Правда, не совсем понятно как оно должно выглядеть для случая публичного IP-адреса и не совпадающего с доменным именем web-server’а именем хоста…

VirtualHost по умолчанию возьмется и все (к другим доступа не будет без соответствующих записей в DNS/файле hosts машины-клиента).

Genie
Так какого … у тебя ВСЕ виртуальные хосты висят НА ОДНОМ IP-адресе И НА ОДНОМ порту?

ааа. а в этом-то что не так?

Apache вполне себе программа, ктороая по соответствию IP, port, hostname может выбрать правильный VirtualHost.



ServerName localhost1

Интересное уточнение.

Надо будет проверить.

Спасибо.

более того, можно и это в нагрузкку использовать

ServerAlias www.localhost1 anotherhost1


ЗЫ: Правда, не совсем понятно как оно должно выглядеть для случая публичного IP-адреса и не совпадающего с доменным именем web-server’а именем хоста…

то есть? глобальное имя сервера и имя в VirtualHost? никоим образом не связанные вещи. соответствиие виртуального хоста производится по строке «Host:» из запроса, если соответствие оному на указанном IP:port найдено, то отдаёмся найденное, иначе — дефолтное (это для случая NameVirtualHost-а).

или о чём другом речь?

neogeisha

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’ов)?..

NameVirtualHost 127.0.0.1

NameVirtualHost 127.0.0.2

Ну и зачем все эти извращения с разными IP и портами, когда Apache прекрасно разбирается с кучей vhost’ов (но разными именами) на одном IP:port?

Genie
Я один не вижу отличий в последних двух «способах» (не считая чуть разных path’ов)?..

нет, не ты один.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.