Тайны настройки apache

D.Lans

Новичок
Тайны настройки apache

Apache 2.2.2

Долго мучился, ставя на апач PHP 5, PERL, MySQL 4.
В конце концов вроде бы все заработало.
Однако теперь появилась проблема с созданием виртуальных хостов.
Мне надо чтобы все работало у меня на компе (то есть без выхода в инет).
Делаю так:

NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1>
ServerName mysite1.com
ServerAlias mysite1.com
DocumentRoot E:/usr/www/test
</virtualHost>

<VirtualHost 127.0.0.1>
ServerName mysite2.com
ServerAlias mysite2.com
DocumentRoot E:/usr/www/test2
</virtualHost>

В файлике hosts который в винде пишу:
127.0.0.1 mysite1.com
127.0.0.1 mysite2.com

Комп перезагружаю.
Не работает.

Подскажите, люди знающие, как сделать, чтобы оно работало.
Причем весьма желательно, чтобы новые сайты (виртуальные) можно было добавлять БЕЗ редактирования файла hosts (просто я задолбаюсь постоянно перезагружать комп).
Прошу помощи.
 

Quessir

Новичок
NameVirtualHost долден быть не АйПи-адрес, а алиас твоего сайта.

NameVirtualHost mysite2.com

<VirtualHost mysite2.com>
ServerName mysite2.com
ServerAlias mysite2.com
DocumentRoot E:/usr/www/test2
</virtualHost>

-~{}~ 25.07.06 16:39:

После редактирования ХОСТС, комп перезагружать не надо.
 

D.Lans

Новичок
Спасибо большое, вроде работает!
Но появилась проблема.
У меня в настрйках апаче ROOT - E:/usr/www/
Поэтому раньше http://localhost и http://127.0.0.1 вели на
E:/usr/www/

Однако после того, как я задал:
Код:
NameVirtualHost test.ru 
 
<virtualHost test.ru> 
ServerName test.ru
ServerAlias test.ru
DocumentRoot  E:/usr/www/test  
</virtualHost> 


<virtualHost test2.ru> 
ServerName test2.ru 
ServerAlias test2.ru 
DocumentRoot  E:/usr/www/test2  
</virtualHost>
Все перемешалось.
test.ru ведет на E:\usr\www\test
test2.ru тоже ведет на E:\usr\www\test хотя должен вести на E:\usr\www\test2
Да еще и http://localhost тоже ведет на E:\usr\www\test хотя должен вести на E:\usr\www

Как поправить?
 

Quessir

Новичок
Указывать NameVirtualHost нужно "Для каждого хоста".

-~{}~ 25.07.06 17:13:

И для локалхоста тоже нужно прописывать ВиртуалХост.
 

D.Lans

Новичок
Прописал NameVirtualHost для test2.ru
Не помогло...

А где namevirtualhost прописывать для локалхоста?
 

Quessir

Новичок
Точно также.

NameVirtualHost test.ru

<virtualHost test.ru>
ServerName test.ru
ServerAlias test.ru
DocumentRoot E:/usr/www/test
</virtualHost>

NameVirtualHost test2.ru

<virtualHost test2.ru>
ServerName test2.ru
ServerAlias test2.ru
DocumentRoot E:/usr/www/test2
</virtualHost>

NameVirtualHost localhost

<virtualHost localhost>
ServerName localhost
ServerAlias localhost
DocumentRoot E:/usr/www
</virtualHost>

-~{}~ 25.07.06 17:39:

Ты хотя б Апаче то перезагружаешь?

-~{}~ 25.07.06 17:40:

Кстати, в httpd.conf директивы типа ServerName и ServerAlias убери(закоментируй).
 

D.Lans

Новичок
Ты хотя б Апаче то перезагружаешь?

Конечно :)

Щас попробую все что написано

ServerAlias я нашел только в коде который ты привел выше.
Его и закомментить?
 

D.Lans

Новичок
Сделал все как было сказано.
Вроде все работает.
Еще раз, спасибо за помощь! :)

Теперь вопрос посложнее.
Я подключен к локальной сети в своем доме.
Мой внутренний IP - 192.168.1.92.
По набору этого IP открывается E:/usr/www (локалхост).
Я же хочу чтобы по нему открывался например E:/usr/www/test3.
1. Как это настроить?
2. Где можно быстро включать/отключать доступ к 192.168.1.92? То есть вот работает сайт, мне нужно отключить его на время (НЕ УДАЛЯЯ), чтобы никто кроме меня не мог на него заходить, а потом снова включить?
 

Quessir

Новичок
NameVirtualHost localhost:192.168.1.92

<virtualHost localhost:192.168.1.92>
ServerName localhost
ServerAlias localhost
DocumentRoot E:/usr/www
</virtualHost>

тогда тебе придется набирать адрес вместе с АйПи

-~{}~ 25.07.06 18:02:

Сорри.
Это тоже меняешь.

ServerName localhost:192.168.1.92
ServerAlias localhost :192.168.1.92

Или поставь какой-нибудь еще неиспользованный алиас
 

D.Lans

Новичок
Так так, я недопонял..
Мне надо чтобы ip 192.168.1.92 вел в другую папку, НЕ в E:/usr/www как стоит сейчас а например в
E:/usr/www/test3
 

Quessir

Новичок
ну это ты уже сам подставляешь. Главное, чтобы ты понял, как это делается.
 

D.Lans

Новичок
Хм.
Твой способ "переадресовывает" локалхост вместе с 192.168.1.92 в новую папку?
Мне желательно, чтобы локалхост по прежнему указывал на E:/usr/www, а 192.168.1.92 на E:/usr/www/test3

Хотя попробую сделать и посмотрю что получится.

А что эта фраза значит?
тогда тебе придется набирать адрес вместе с АйПи

-~{}~ 25.07.06 18:36:

Попробовал - не получилось.
Мало того, после того как в конфиге указываешь больше одной директивы NameVirtualHost (в данном случае 3) - лезут предупреждения, однако апаче все же запускается.
Можно ли корректно создать виртуальные хосты БЕЗ предупреждений?
 

D.Lans

Новичок
Как жутко.
Тем более что firefox не воспринимает такой формат.
А попроще как сделать, чтобы именно по 192.168.1.92 можно было обращаться?

-~{}~ 25.07.06 19:01:

И как все же избавиться от предупреждений, которые вылазят при использовании более одного раза директивы NameVirtualHost???
Кто-нибудь знает?
 
NameVirtualHost *:80

<VirtualHost 192.168.1.92:80>
DocumentRoot "E:/usr/www/test3"
ServerName 192.168.1.92
</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot "E:/usr/www"
ServerName localhost
</VirtualHost>



http://localhost/
http://192.168.1.92/
 

D.Lans

Новичок
У меня так:

Код:
servername test

#Сайты:

NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1>
    ServerAdmin Wedmaster@may_domain.ru
    DocumentRoot E:/usr/www
    ServerName localhost
    ServerAlias localhost
    #SсгiрtAlias /cgi/ "E:/usr/www/cgi/"
    ErrorLog /logs/mysite-error.log
    CustomLog /logs/mysite-access.log common
</VirtualHost> 

<VirtualHost 127.0.0.1>
    ServerAdmin Wedmaster@may_domain.ru
    DocumentRoot E:/usr/www/test
    ServerName website1.ru
    ServerAlias website1.ru
    #SсгiрtAlias /cgi/ "E:/usr/www/test/cgi/"
    ErrorLog /logs/mysite-error.log
    CustomLog /logs/mysite-access.log common
</VirtualHost> 


<VirtualHost 127.0.0.1>
    ServerAdmin Wedmaster@may_domain.ru
    DocumentRoot E:/usr/www/test2
    ServerName website2.ru
    ServerAlias website2.ru
    #SсгiрtAlias /cgi/ "E:/usr/www/test2/cgi/"
    ErrorLog /logs/mysite-error.log
    CustomLog /logs/mysite-access.log common
</VirtualHost> 


<VirtualHost 192.168.1.92:80>
DocumentRoot E:/usr/www/test3
ServerName 192.168.1.92
</VirtualHost>
Никаких предупреждений нет!
Но 192.168.1.92 по прежнему ведет в рутовую папку, вместо test3.

-~{}~ 26.07.06 01:47:

ScriptAlias я заккоментил потому что он выдает ошибку...
 

nerezus

Вселенский отказник
поменяй местами - поставь последний блок первым.
 

D.Lans

Новичок
Ок, попробую, а как ScriptAlias сделать, чтобы он вел на папку_отдельного_виртуального_хоста/cgi
???
 

Quessir

Новичок
Я же тебе говорил, что NameVirtualHost нужно ставить перед каждым блоком. И убери ServerName test в самом начале.

-~{}~ 26.07.06 16:55:

Wedmaster...
 
Сверху