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


Автор: Innuendo 22.6.2006, 19:47
Приветсвую!
Когда-то я был на Апаче 1.3, и тогда настроил вроде и всё работало.
Щас у меня апач2.
В httpd в конце файла добавил:
Цитата

NameVirtualHost 127.0.0.1
#----localhost
<VirtualHost localhost>
  ServerAdmin webmaster@locahost
  ServerName localhost
  DocumentRoot "D:/Internet/home/localhost/www"
  ScriptAlias /cgi/ "D:/Internet/home/localhost/cgi/"
  ErrorLog "D:/Internet/home/localhost/error.log"
  CustomLog "D:/Internet/home/localhost/access.log" common
</VirtualHost>
#----myphp
<VirtualHost myphp>
  ServerAdmin webmaster@myphp
  ServerName myphp
  DocumentRoot "D:/Internet/home/myphp/www"
  ScriptAlias /cgi/ "D:/Internet/home/myphp/cgi/"
  ErrorLog "D:/Internet/home/myphp/error.log"
  CustomLog "D:/Internet/home/myphp/access.log" common
</VirtualHost>

В файле hosts у меня
Цитата

127.0.0.1                localhost  lh
127.0.0.2                myphp


Если завожу в браузере 127.0.0.1 или lh или localhost, то он открывает первый хост. Всё ок.
А второй хост ни через 127.0.0.2 ни через myphp не открывается.
В чём моя ошибка?

Заранее спасибо. Поиском пользовался, темы читал про виртуальные хосты, но ответа толком не нашел. 

Автор: 2man 14.7.2006, 20:55
Innuendo, а ты ничего не пропустил? smile
Подсказка: посмотри второй виртуальный хост.
Где строка
Код

NameVirtualHost 127.0.0.2

smile 

Автор: Innuendo 15.7.2006, 00:46
не понимаю..
у меня строки  
NameVirtualHost 127.0.0.2 вообще нету (кстати при добавлении ничего не меняется) 

Автор: 2man 15.7.2006, 01:37
Так откуда у тебя тогда в hosts появился этот IP?
Поставь тогда:
Код

127.0.0.1                localhost  lh
127.0.0.1                myphp
 

Автор: Innuendo 15.7.2006, 12:32
нет, мне надо чтоб на 127.0.0.1 был локалхост и он же ещё назывался лх,
а на 127.0.0.2 был другой виртуальный хост.

Скажи что исправить пожалуйста - не говори загадками =) 

Автор: Kuber 15.7.2006, 15:22
Врятли так получится, я думаю нужна еще одна сетевая карта или как - нибудь виртуально(*nix ifconfig eth0:2 192.168.0.2 netmask 255.255.255.0), при этом надо убрать директиву NameVirtualHost, добавить BindAddress *, а в названии указывать IP, ну и прописать в хостс:
Код

 <VirtualHost IP>
    ServerName www.myphp.ru
    ....
 </VirtualHost>
 

Автор: Innuendo 15.7.2006, 16:41
не, какая сетевуха?
на одном апаче можно десятки виртуальных хостов делать.. Я когда на 1.3 сидел, то сидел так... 

Автор: Kuber 15.7.2006, 17:29
Можно, но на один IP, а ты вроде как пытаешся каждому свой IP. Поэтому проще будет сделать как говорит 2man.
 

Автор: Innuendo 15.7.2006, 17:37
нет, я делал для разных айпи
но а смысл на один айпи?
вот у меня шас localhost и lh на 1-ом айпи: 127.0.0.1
это можно сказать 2 ссылки к обращению на хост 127.0.0.1
а мне нужно сделать и на 127.0.0.2 ещё 

Автор: Kuber 15.7.2006, 17:46
IP-based Virtual Hosts

Итак, в случае использования IP-based хостов Вы можете поддерживать несколько сайтов на одном сервере, и каждый из размещенных на этом сервере сайтов будет иметь свой собственный IP-адрес. Здесь все упирается в проблему назначения нужного количества IP-адресов на одну машину. Большинство современных операционных систем позволяют назначать столько IP-адресов на одну машину, сколько Вам угодно. В каждом случае, в зависимости от типа используемой ОС, назначение нескольких IP-адресов одной машине может иметь свои специфические особенности, поэтому здесь мы этот процесс подробно рассматривать не будем, а лишь заметим, что на некоторых операционных системах для назначения нескольких IP-адресов на одну машину требуется иметь на такой машине и несколько сетевых карт (по одной на каждый адрес).

Назначив машине несколько IP-адресов надо не забыть сопоставить на используемом в сети DNS-сервере каждому из назначенных адресов свое доменное имя. В случае, если этого не сделать, то компьютеры пользователей смогут обнаружить установленные на Вашем сервере виртуальные хосты только по IP-адресу, а не по имени хоста. Правда, в некоторых случаях можно обойтись и без DNS-сервера.

 

Автор: 2man 15.7.2006, 20:16
Вот смотри как у меня:
Код

# Host /home/test2.ru/www (7): 
Listen 127.0.0.1:80
NameVirtualHost *:*
<VirtualHost *:*>
  DocumentRoot "Z:/home/test2.ru/www"
  ServerName "test2.ru"
  ServerAlias "test2.ru" "www.test2.ru" 
  ScriptAlias /cgi/ "/home/test2.ru/cgi/"
  ScriptAlias /cgi-bin/ "/home/test2.ru/cgi-bin/"
  ErrorLog "/home/test2.ru/error.log"
</VirtualHost>

# Host /home/custom/www (8): 
Listen 127.0.0.2:8648
NameVirtualHost 127.0.0.2:*
<VirtualHost 127.0.0.2:8648>
  DocumentRoot "Z:/home/custom/www"
  ServerName "custom"
  ServerAlias "custom" "www.custom" custom-host
  ScriptAlias /cgi/ "/home/custom/cgi/"
  ScriptAlias /cgi-bin/ "/home/custom/cgi-bin/"
  ErrorLog "/home/custom/error.log"
</VirtualHost>

 

Автор: Innuendo 15.7.2006, 22:46
кстати,
я сделал себе тоже Z: через subst (bat скрипт, запускается при автозагрузке)
Тока еслия  в конфиге прописываю этот Z, то не работает, а если D:Internet то работает =)
можно Z создаётся позже чем запускается апача =) 

Автор: 2man 15.7.2006, 23:02
Ну просто z диск постоянно включен, потому как стоит апач на сервере и постоянно работает smile

Innuendo, ну что работает? 

Автор: Innuendo 16.7.2006, 00:57
2man, 
Я тогда был занят, щас буду пробовать =)

Цитата(2man @  15.7.2006,  23:02 Найти цитируемый пост)
Ну просто z диск постоянно включен, потому как стоит апач на сервере и постоянно работает smile

не совсем понял фразу =) 

Автор: Innuendo 16.7.2006, 01:24
Код

<VirtualHost localhost>
  NameVirtualHost localhost
  ServerAdmin webmaster@locahost
  ServerName localhost
  DocumentRoot "D:/Internet/home/localhost/www"
  ScriptAlias /cgi/ "D:/Internet/home/localhost/cgi/"
  ErrorLog "D:/Internet/home/localhost/error.log"
  CustomLog "D:/Internet/home/localhost/access.log" common
</VirtualHost>

Listen 127.0.0.2:80
<VirtualHost myphp>
   NameVirtualHost myphp
   ServerAdmin webmaster@myphp
   ServerName myphp
   DocumentRoot "D:/Internet/home/myphp/www"
   ScriptAlias /cgi/ "D:/Internet/home/myphp/cgi/"
   ErrorLog "D:/Internet/home/myphp/error.log"
   CustomLog "D:/Internet/home/myphp/access.log" common
</VirtualHost>


всё равно =(
Syntax -OK.
но если в браузере пишу myphp, он пишет не может соединится с 127.0.0.2 (т.е. в hosts он видел куда надо адресоваться)
Пробовал по-разному (я тут ещё темы нашел)
Да и в начале я сделал точь-в-точь как написано у Котерова в книге пхп4... и всё равно не работает =( 

Автор: Innuendo 16.7.2006, 15:47
Ладно.
Понял почему...
Я удалил всё, и поставил Денвер...
И там я понял, просто в Винде xp,2000,nt есть баг, из-за которого не делает виртуальные хосты с другим айпи (127.0.0.2 и т.д.) и надо было скачать запладку...
Я уже в денвере там дописал в hosts себе все мои хосты на 127.0.0.1 и все дела... Но я не знал что можно на один айпи много Разных серваков...

Вообщем всё работает, спасибо http://dklab.ru/ 

Автор: malor 22.8.2007, 10:28
Перезапускаю apache_2.2.4-win32-x86-no_ssl.msi :
Цитата
[Wed Aug 22 10:38:17 2007] [notice] Parent: Received restart signal -- Restarting the server.
[Wed Aug 22 10:38:17 2007] [error] (OS 11001)Этот хост неизвестен.  : Could not resolve host name *.* -- ignoring!
[Wed Aug 22 10:38:17 2007] [notice] Apache/2.2.4 (Win32) configured -- resuming normal operations
[Wed Aug 22 10:38:17 2007] [notice] Server built: Jan  9 2007 23:17:20
[Wed Aug 22 10:38:17 2007] [notice] Parent: Created child process 2736
[Wed Aug 22 10:38:18 2007] [error] (OS 11001)Этот хост неизвестен.  : Could not resolve host name *.* -- ignoring!
[Wed Aug 22 10:38:18 2007] [notice] Child 2736: Child process is running
[Wed Aug 22 10:38:18 2007] [notice] Child 2736: Acquired the start mutex.
[Wed Aug 22 10:38:18 2007] [notice] Child 2736: Starting 250 worker threads.
[Wed Aug 22 10:38:18 2007] [notice] Child 2444: Released the start mutex
[Wed Aug 22 10:38:19 2007] [notice] Child 2444: Waiting for 250 worker threads to exit.
[Wed Aug 22 10:38:19 2007] [notice] Child 2736: Starting thread to listen on port 81.
[Wed Aug 22 10:38:19 2007] [notice] Child 2736: Starting thread to listen on port 81.
[Wed Aug 22 10:38:19 2007] [notice] Child 2736: Starting thread to listen on port 80.
[Wed Aug 22 10:38:19 2007] [notice] Child 2444: All worker threads have exited.
[Wed Aug 22 10:38:19 2007] [notice] Child 2444: Child process is exiting
Настройку делал согласно пунктам 3-29 на http://forum.dklab.ru/php/book/UstanovkaApache2058Php514IMysql5022-Podrobno.html .
Только файл vhosts.conf такой:
Код
NameVirtualHost *.*
Listen 127.0.0.1:81
Listen 127.0.0.2:81

<VirtualHost *:*>
    ServerAdmin webmaster@localhost
    ServerName localhost
    DocumentRoot "C:/WebServers/home/localhost/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/cgi"
    ErrorLog C:/WebServers/home/localhost/error.log
    CustomLog C:/WebServers/home/localhost/access.log common
</VirtualHost>
#ipbased
<VirtualHost ipbased>
    ServerAdmin webmaster@ipbased
    ServerName ipbased
    DocumentRoot "C:/WebServers/home/localhost/ipbased/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/ipbased/cgi/"
    ErrorLog C:/WebServers/home/localhost/ipbased/error.log
    CustomLog C:/WebServers/home/localhost/ipbased/access.log common
</VirtualHost>
#nmbased
<VirtualHost *:*>
    ServerAdmin webmaster@nmbased
    ServerName nmbased
    DocumentRoot "C:/WebServers/home/localhost/nmbased/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/nmbased/cgi/"
    ErrorLog C:/WebServers/home/localhost/nmbased/error.log
    CustomLog C:/WebServers/home/localhost/nmbased/access.log common
</VirtualHost>
Что делать?

Windows/system32/drivers/etc/hosts:
127.0.0.1 localhost nmbased 
127.0.0.2 ipbased


При вводе в адресную строку браузера слово nmbased я получаю index.html лежащий в C:/WebServers/home/localhost/www, но нужно тот, что в C:/WebServers/home/localhost/nmbased/www!
При вводе в адресную строку браузера ipbased Opera выдает страницу с текстом:
Цитата
Error!
Connection closed by remote server

You tried to access the address http://ipbased/, which is currently unavailable. Please make sure that the Web address (URL) is correctly spelled and punctuated, then try reloading the page.
Make sure your Internet connection is active and check whether other applications that rely on the same connection are working.

... и т.д. ...


WinXP Pre_SP3

Автор: marykone 22.8.2007, 14:10
Цитата(malor @  22.8.2007,  10:28 Найти цитируемый пост)
*:*


вот сдесь ай пи вбей 

Автор: malor 22.8.2007, 14:57
Цитата(marykone @ 22.8.2007,  14:10)
Цитата(malor @  22.8.2007,  10:28 Найти цитируемый пост)
*:*
вот сдесь ай пи вбей

Код
NameVirtualHost *.*
Listen 127.0.0.1:81
Listen 127.0.0.2:81

<VirtualHost 127.0.0.1>
    ServerAdmin webmaster@localhost
    ServerName localhost
    DocumentRoot "C:/WebServers/home/localhost/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/cgi"
    ErrorLog C:/WebServers/home/localhost/error.log
    CustomLog C:/WebServers/home/localhost/access.log common
</VirtualHost>
#ipbased
<VirtualHost ipbased>
    ServerAdmin webmaster@ipbased
    ServerName ipbased
    DocumentRoot "C:/WebServers/home/localhost/ipbased/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/ipbased/cgi/"
    ErrorLog C:/WebServers/home/localhost/ipbased/error.log
    CustomLog C:/WebServers/home/localhost/ipbased/access.log common
</VirtualHost>
#nmbased
<VirtualHost 127.0.0.1>
    ServerAdmin webmaster@nmbased
    ServerName nmbased
    DocumentRoot "C:/WebServers/home/localhost/nmbased/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/nmbased/cgi/"
    ErrorLog C:/WebServers/home/localhost/nmbased/error.log
    CustomLog C:/WebServers/home/localhost/nmbased/access.log common
</VirtualHost>

Теперь при вводе в адресную строку ipbased я получил то, что надо. Но при вводе nmbased пока еще файл index.html не из нужной папки загружается.

Сейчас в логах такое:
Код
[Wed Aug 22 16:08:04 2007] [notice] Parent: Received restart signal -- Restarting the server.
[Wed Aug 22 16:08:05 2007] [warn] VirtualHost 127.0.0.1:0 overlaps with VirtualHost 127.0.0.1:0, the first has precedence, perhaps you need a NameVirtualHost directive
[Wed Aug 22 16:08:05 2007] [notice] Apache/2.2.4 (Win32) configured -- resuming normal operations
[Wed Aug 22 16:08:05 2007] [notice] Server built: Jan  9 2007 23:17:20
[Wed Aug 22 16:08:05 2007] [notice] Parent: Created child process 228
[Wed Aug 22 16:08:05 2007] [error] (OS 11001)Этот хост неизвестен.  : Could not resolve host name *.* -- ignoring!
[Wed Aug 22 16:08:05 2007] [warn] VirtualHost 127.0.0.1:0 overlaps with VirtualHost 127.0.0.1:0, the first has precedence, perhaps you need a NameVirtualHost directive
[Wed Aug 22 16:08:05 2007] [warn] VirtualHost 127.0.0.1:0 overlaps with VirtualHost 127.0.0.1:0, the first has precedence, perhaps you need a NameVirtualHost directive
[Wed Aug 22 16:08:05 2007] [notice] Child 228: Child process is running
[Wed Aug 22 16:08:05 2007] [notice] Child 228: Acquired the start mutex.
[Wed Aug 22 16:08:05 2007] [notice] Child 228: Starting 250 worker threads.
[Wed Aug 22 16:08:05 2007] [notice] Child 228: Starting thread to listen on port 81.
[Wed Aug 22 16:08:05 2007] [notice] Child 228: Starting thread to listen on port 81.
[Wed Aug 22 16:08:05 2007] [notice] Child 228: Starting thread to listen on port 80.
[Wed Aug 22 16:08:06 2007] [notice] Child 2532: Waiting for 250 worker threads to exit.
[Wed Aug 22 16:08:06 2007] [notice] Child 2532: All worker threads have exited.
[Wed Aug 22 16:08:06 2007] [notice] Child 2532: Child process is exiting

Автор: marykone 22.8.2007, 15:08
127,0,0,3
Цитата

nmbased

и hosts подредактируй 
Цитата

127,0,0,3   nmbased


Цитата

Listen 127.0.0.3:81

Автор: malor 22.8.2007, 15:16
Зачем мне вводить еще третий IP? Ведь смысл в том, что должно быть два хоста на одном IP.

Автор: marykone 22.8.2007, 15:18
а вообще сделай по принципу 

Цитата

NameVirtualHost  127.0.0.1:81
Listen 127.0.0.1:81

<VirtualHost 127.0.0.1>
    ServerAdmin webmaster@localhost
    ServerName localhost
    DocumentRoot "C:/WebServers/home/localhost/www"
    ScriptAlias /cgi/ "C:/WebServers/home/localhost/cgi"
    ErrorLog C:/WebServers/home/localhost/error.log
    CustomLog C:/WebServers/home/localhost/access.log common
</VirtualHost>


так же и для других по аналогии

зы один топик один вопрос !!!! книга по апачу сдесь есть в разделе документация

Добавлено @ 15:25
Цитата(malor @  22.8.2007,  15:16 Найти цитируемый пост)
 Ведь смысл в том, что должно быть два хоста на одном IP.


а для чего вообще такой заморочкой задался 

директива binaddress как с ней дела обстоят 

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