Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Виртуальные хосты Apache для localhost (настроил httpd&hosts) работают не так...:-(

15K
16 ноября 2006 года
TVC
11 / / 10.05.2006
Здравствуйте!:-) Буду очень признателен за помощь! Соответственно, документацию по вопросу и FAQ по настройке Apache (в этом разделе форума) я читал (http://httpd.apache.org/docs/1.3/vhosts/, http://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 [email]admin@site1.megaportal.ru[/email]
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 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 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 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
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
[...]

В итоге получилось следующее: адреса 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 в начале адресной строки: htdocs.site1.megaportal.ru или htdocs.site1.megaportal.ru. Подскажите, пожалуйста, что я делаю не так!
В документации сказано, что если имя хоста в запросе, пришедшем на сервер, не совпадает ни с одним из ServerName в блоках VirtualHost, то будет просто открыт первый виртуальный хост из списка, что, видимо, у меня и происходит. Значит ли это, что сервер не может преобразовать полученное из броузера доменное имя в IP, проверить его на совпадание с выражением в директиве NameVirtualHost и найти соответствующий блок VirtualHost с таким же IP и ServerName, совпадающим с именем запрошенного хоста? А если да, то нужно ли конфигурировать какие-то еще настройки DNS, помимо файла hosts, если разворачивание производится на одной локальной машине (и где и как это делается)?


Спасибо за внимание!
256
16 ноября 2006 года
foxweb
1.0K / / 27.07.2005
мдаа... тяжёлый случай

во-первых, не далее как здесь это обсуждалось. можно было хотя бы на вторую страницу заглянуть.

во-вторых, денвер - это полное дерьмо. руками всё гораздо проще и быстрее.
15K
16 ноября 2006 года
TVC
11 / / 10.05.2006
Спасибо за ответ! Как раз, вторую страницу я сразу посмотрел, поиск сделал и т.д. А случай тяжелый, поскольку, казалось бы, все по науке, но не работает. Не знал, чего и думать. Оставалось только спросить. Я разобрался в чем дело было - из-за наличия файлов ".htaccess" в htdocs-ах в папках всех доменов, кроме первого, сервер, из-за прав доступа, ничего не выдавал.
Остался открытым вопрос, как можно сделать, чтобы домены открывались без htdocs в адресной строке? Вот сейчас броузер возвращает страницу только для запросов вида http://htdocs.site1.megaserver.ru/, а по обычному запросу http://site1.megaserver.ru/ ничего не находит. Что надо поменять в httpd.conf, чтобы обычному по http://site1.megaserver.ru/ возвращалась эта страница?
А в Denwer хорошо, что сразу все связи MySQL-PHP-Apache сразу есть, не надо никаких расширений и модулей самому устанавливать.
12
16 ноября 2006 года
alekciy
3.0K / / 13.12.2005
Это ли "хорошо"? Имхо, это как раз плохо.
256
17 ноября 2006 года
foxweb
1.0K / / 27.07.2005
Клиника. Ещё раз.
1. Удали ВСЕ свои виртуалхосты из httpd.conf и из hosts.
2. Настрой те хосты, которые тебе нужны, как описано >>> ЗДЕСЬ <<<.

Сейчас ты привёл просто бесполезные куски кода без понимания его значения. Если не понимаешь, скопируй хотя бы мой код без ошибок, всё будет работать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог