Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Много хостов в локалке через hosts и VirtualHost


Автор: Dima50 4.7.2010, 21:13
Всем доброго дня!

преамбула

Занимаюсь веб программированием, обычно на своей  машине  ip 192.168.0.2  (пусть она будет зваться вторая) для каждого отдельного проекта создаю  хост, что гораздо удобней чем работать с разными папками localhost. Делаю это по средствам модифицирования httpd.conf и файла hosts (работаю под win XP):

httpd.conf Вторая машина 192.168.0.2:
Код

Listen 127.0.0.1:80

.
.
  DocumentRoot "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"
.
.
.
<VirtualHost project01.ru>
  DocumentRoot "D:\project01"
  ServerName "project01.ru"
  ServerName "project01.ru"
  ServerAlias "project01.ru"
</VirtualHost>
<VirtualHost project02.ru>
  DocumentRoot "D:\project02"
  ServerName "project02.ru"
  ServerName "project02.ru"
  ServerAlias "project02.ru"
</VirtualHost>
.
.
.

hosts Вторая машина 192.168.0.2:
Код

127.0.0.1       localhost project02.ru project01.ru


и так на второй   192.168.0.2 машине все работает как и ожидалось:
ввожу в браузере project01.ru  отображается страница project01.ru
ввожу в браузере project02.ru  отображается project02.ru
ввожу в браузере localhost отображается стандартное приветсвие апача It's works!

Теперь суть:

Сей час встала задача просматривать эти проекты через локальную сеть с третьего компьютера 192.168.0.3

я выполнил следующее:

Видоизменение httpd.conf на второй машине 192.168.0.2:
Код

Listen 192.168.0.2:80
Listen 127.0.0.1:80

.
.
  DocumentRoot "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"
.
.
.
<VirtualHost project01.ru>
  DocumentRoot "D:\project01"
  ServerName "project01.ru"
  ServerName "project01.ru"
  ServerAlias "project01.ru"
</VirtualHost>
<VirtualHost project02.ru>
  DocumentRoot "D:\project02"
  ServerName "project02.ru"
  ServerName "project02.ru"
  ServerAlias "project02.ru"
</VirtualHost>
.
.
.


hosts на Третьей машние  192.168.0.3:
Код

127.0.0.1       localhost 
192.168.0.2    project02.ru project01.ru


Файл hosts на Второй машине я не трогал.

И так после поделанных действий на второй машине все продолжает работать идеально, что зовем то и вызывается.

А  вот при обращения с  третьей машины к сайтам творятся метаморфозы:

ввожу в браузере project01.ru  отображается стандартное приветсвие апача It's works!
ввожу в браузере project02.ru  отображается стандартное приветсвие апача It's works!
ввожу в браузере localhost отображается стандартное приветсвие апача It's works!

Т.е. читается все из глобального DocumentRoot, и плевать оно хочет на прописанные virtual hosts. Если сменить DocumentRoot на D:\project01, то будет всегда отображаться project01.


Вопрос в том как реализовать несколько хостов в локальной сети?

С уважением Дмитрий.


Автор: IgorIV 5.7.2010, 19:00
Цитата(Dima50 @  4.7.2010,  22:13 Найти цитируемый пост)
ввожу в браузере localhost отображается стандартное приветсвие апача It's works!

Что означает наличие апача на третьем компьютере.
Поменяй It`works на что-нибудь конкретное, указывающее на второй компьютер.
По сути, вроде всё правильно. Вот еще рассказал как соединены 2 и 3. И как 3 выходит в инет.

Автор: Dima50 5.7.2010, 19:17
Цитата(IgorIV @  5.7.2010,  19:00 Найти цитируемый пост)
Поменяй It`works на что-нибудь конкретное, указывающее на второй компьютер.


Цитата(Dima50 @  4.7.2010,  21:13 Найти цитируемый пост)
Т.е. читается все из глобального DocumentRoot, и плевать оно хочет на прописанные virtual hosts. Если сменить DocumentRoot на D:\project01, то будет всегда отображаться project01.


Цитата(IgorIV @  5.7.2010,  19:00 Найти цитируемый пост)

Что означает наличие апача на третьем компьютере.


читай внимательней

Автор: IgorIV 6.7.2010, 22:00
Не понял про апач на 3 компе.

Автор: Dima50 7.7.2010, 11:55
апач на третьей машине ни как не используется.

Отвечает сервер с второй машины.




Автор: IgorIV 8.7.2010, 20:56
Код

NameVirtualHosts *:80

<VirtualHost *:80>
  DocumentRoot "D:\project01"
  ServerName "project01.local"
  ErrorLog "/path/to/log/project01-error.log"
  CustomLog "/path/to/log/project01-access.log" common
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "D:\project02"
  ServerName "project02.local"
  ErrorLog "/path/to/log/project02-error.log"
  CustomLog "/path/to/log/project02-access.log" common
</VirtualHost>


localhost - это всегда локальная машина и для 3 это будет локальный апач. Неужели так трудно было в index.html прописать - "192.168.0.2"
И советую сменить ru на local.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)