Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Настройка виртуальных хостов в Apache, как указать пути к разным htdocs и DNS. (VC)
Author Message
VC
Заглянувший



Joined: 16 Nov 2006
Posts: 1
Карма: 0
   поощрить/наказать

Location: MSK

PostPosted: Thu Nov 16, 2006 11:54 am (написано за 41 минуту 35 секунд)
   Post subject: Настройка виртуальных хостов в Apache, как указать пути к разным htdocs и DNS.
Reply with quote

Здравствуйте!:-) Буду очень признателен за помощь! Соответственно, документацию по вопросу читал (httpd.apache.org/docs/1.3/vhosts/, www.asweb.ru/articles/web/virtualhosts/ и много других источников), но работать, как мне требуется, Apache уговорить так и не получилось.:-( Сам Denwer (от 2006-04-25: Apache 1.3.33, PHP 4.4.2, MySQL 4.1.16 и PMA 2.6.1) установлен в C:\WebServers. В C:\WebServers\www\ (а не в home!) находится папка "megaportal.ru", в которой лежат четыре папки с содержимым четырех доменов: "site1.megaportal.ru", "site2.megaportal.ru", "site3.megaportal.ru" и "site4.megaportal.ru". Внутри каждой из них "cgi-bin", "data", "htdocs" и "scripts". Исполняемый при обращению к каждому из этих доменов index.php находится в соответствующем htdocs. Вопрос: как сделать, чтобы при вводе через адресную строку броузера наименования любого из этих доменов, Apache находил соответствующий индексный файл и корректно отображал сайт в его окне? (Не через сеть, а, хотя бы, на самой локальной машине.)

В httpd.conf я написал строки:

[...]
### Раздел 2: Конфигурация сервера по умолчанию
...
ServerName localhost
...
DocumentRoot "/home"
...
HostnameLookups Off
...
### Раздел 3: Виртуальные хосты
...
NameVirtualHost 127.0.0.1:*
Listen *:80
...
#Далее следуют 4 идентичных блока, отличающиеся только наименованиями site1.megaportal.ru ... site4.megaportal.ru
<VirtualHost 127.0.0.1:*>
  ServerName site1.megaportal.ru
  ServerAdmin admin@site1.megaportal.ru
  ServerAlias site1.megaportal.ru *.site1.megaportal.ru
  DocumentRoot /www/megaportal.ru/site1.megaportal.ru/htdocs
  ErrorLog /www/megaportal.ru/site1.megaportal.ru/error.log
  CustomLog /www/megaportal.ru/site1.megaportal.ru/access.log common
 <Directory /www/megaportal.ru/site1.megaportal.ru/htdocs>
  Options Includes
  AllowOverride all
 </Directory>
  ScriptAlias /cgi-bin/ "/www/megaportal.ru/site1.megaportal.ru/cgi-bin"
 <Directory /www/megaportal.ru/site1.megaportal.ru/cgi-bin>
  Options ExecCGI
  Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>
[...]

Все остальные строки в httpd.conf - не изменялись с момента установки Denwer. После этого, дла обеспечения соответствия между именами и IP, добавил (но их, вроде, изначально Denwer добавил - я только поменял местами, немного поэкспериментировал) в конфигурационный файл hosts C:\WINDOWS\system32\drivers\etc\hosts строки:

[...]
127.0.0.1 localhost
#MINE
127.0.0.1 www.site1.megaportal.ru
127.0.0.1 www.site2.megaportal.ru
127.0.0.1 www.site3.megaportal.ru
127.0.0.1 www.site4.megaportal.ru
127.0.0.1 site1.megaportal.ru
127.0.0.1 site2.megaportal.ru
127.0.0.1 site3.megaportal.ru
127.0.0.1 site4.megaportal.ru
127.0.0.1 www.htdocs.site1.megaportal.ru
127.0.0.1 www.htdocs.site2.megaportal.ru
127.0.0.1 www.htdocs.site3.megaportal.ru
127.0.0.1 www.htdocs.site4.megaportal.ru
127.0.0.1 htdocs.site1.megaportal.ru
127.0.0.1 htdocs.site2.megaportal.ru
127.0.0.1 htdocs.site3.megaportal.ru
127.0.0.1 htdocs.site4.megaportal.ru
[...]

В итоге получилось следующее: адреса www.site1.megaportal.ru или site4.megaportal.ru в броузере не открываются (Сообщение Mozilla: "www.site1.megaportal.ru could not be found. Please check the name and try again."), открывается всегда только тот домен, который описан в самом первом VirtualHost (site1.megaportal.ru) и только при наличии слова htdocs в начале адресной строки: www.htdocs.site1.megaportal.ru или htdocs.site1.megaportal.ru. Подскажите, пожалуйста, что я делаю не так!
В документации сказано, что если имя хоста в запросе, пришедшем на сервер, не совпадает ни с одним из ServerName в блоках VirtualHost, то будет просто открыт первый виртуальный хост из списка, что, видимо, у меня и происходит. Значит ли это, что сервер не может преобразовать полученное из броузера доменное имя в IP, проверить его на совпадание с выражением в директиве NameVirtualHost и найти соответствующий блок VirtualHost с таким же IP и ServerName, совпадающим с именем запрошенного хоста? А если да, то нужно ли конфигурировать какие-то еще настройки DNS, помимо файла hosts, если разворачивание производится на одной локальной машине (и где и как это делается)?


Спасибо за внимание!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML