Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Виртуальный хост и реальные домен
 
 автор: toproot   (24.11.2010 в 20:01)   письмо автору
 
 

всем привет, у меня такая ситуация:
Нужно создать пару виртуальных хостов
httpd.conf:
<VirtualHost 127.0.0.1:80>
ServerName "oilmaster.org.ua"
DocumentRoot "D:/www/oilmaster"
....
</VirtualHost>

hosts:
127.0.0.1 localhost
127.0.0.1 oilmaster.org.ua

На локалке все работает.
Мои домены iodb.ru и oilmaster.org.ua я попросил хостера направить НС мне на етот сервер.
iodb.ru у меня типа главный (localhost)
а oilmaster.org.ua - виртуальный хост.

Так вот, получилось что домен oilmaster.org.ua просто припаркован к localhost (т.е iodb.ru = oilmaster.org.ua = localhost )

Такое мне не подходит, нужен отдельный виртуальный хост oilmaster.iodb.ru

Что еще писать в апач? или куда?
Обязательно нужно подымать DNS ?
и если подниму, как настроить или дайте ссылку? Не получается чтото нормальное и подходящее найти в интернете.

Apache 2.2.6 Windows Server 2008

  Ответить  
 
 автор: soldier   (25.11.2010 в 09:10)   письмо автору
 
   для: toproot   (24.11.2010 в 20:01)
 

Вот это :

<VirtualHost 127.0.0.1:80>
ServerName "oilmaster.org.ua"
DocumentRoot "D:/www/oilmaster"
....
</VirtualHost>

Должно выглядеть так

<VirtualHost :80>
ServerName "oilmaster.org.ua"
DocumentRoot "D:/www/oilmaster"
....
</VirtualHost>

Если уж вы на своем сервере хостите домены то однозначно должен быть поднят DNS. Конечно если на паркинге ваш сервер зарегистрирован как сервер DNS для ваших доменов. Кроме того можно один из ваших доменов сделать сайтом по умолчанию прописав его в httpd.conf в директории DocumentRoot

  Ответить  
 
 автор: toproot   (25.11.2010 в 21:38)   письмо автору
 
   для: soldier   (25.11.2010 в 09:10)
 

Хух, настроил наконец. отпишусь. вдруг кому пригодится.

Днс подымать не нада в моем случае.
В файле hosts делаю адрес localhost - 192.168.1.x - адрес сервера внутри сети (вместо 127.0.0.1)
В апач делаю просто 2 виртуальных хоста для обоих доменов.
NameVirtualHost 192.168.1.109
<VirtualHost 192.168.1.109>
ServerName localhost
DocumentRoot "D:/www/localhost"
</virtualHost>
<VirtualHost 192.168.1.109>
ServerName domain.org.ua
DocumentRoot "D:/www/oilmaster"
</virtualHost>
- и все заработало.

  Ответить  
 
 автор: Trianon   (25.11.2010 в 22:35)   письмо автору
 
   для: toproot   (25.11.2010 в 21:38)
 

раз. Персональные атаки на посетителей портала недопустимы.
два. Недопустимы персональные атаки на посетителей портала.
три. На посетителей портала персональные атаки недопустимы.
четыре. Недопустимы атаки персональные на посетителей портала.
пять. Атаки персональные недопустимы на портала посетителей.

Уфф.

>В файле hosts делаю адрес localhost - 192.168.1.x - адрес сервера внутри сети (вместо 127.0.0.1)

Вот скажите мне, господа коллеги, как такое вот можно прочесть, и не назвать автора кретином?
При чем не тем, который местный ник - боже упаси. А вполне себе именем нарицательным.

Вот мне удалось лишь сосчитав медленно до пяти.

- Сижу как обычно, смотрю телевизор, ковыряю шилом в ухе...

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

.. Вдруг "щелк" - звук пропал!


- Взяли бы спицу - пропало бы и изображение!

  Ответить  
 
 автор: soldier   (26.11.2010 в 10:37)   письмо автору
 
   для: Trianon   (25.11.2010 в 22:35)
 

))) Попробуем по-быстрому объеснить товарищу, автору темы, почему Володька сбрил усы.
Поскольку у всех когдато был первый виртуальный хост я тож страдал такой же ерундой. Пока опытный коллега не растолковал что к чему. Кстати подобных советов в которых неизвестно зачем в виртуалхосте номер порта заменяется IP адресом в сети пруд пруди.
Что получилось у автора, когда он правильно прописал виртуальные хосты, а вот что - на самом сервере по именам у него сайты не открывались. И здесь действительно поможет правка файла hosts в windows/system32/drivers/etc . Только накой сносить localhost, кому он мешает? После 127.0.0.1 элементарно прописывается 127.0.0.2 medomen1.com, потом 127.0.0.2 mydomen2.com и т.д. совать вовсюда IP адреса сервера изврат полный. Да кстати на заметку если на сервере стоит антивирус с влюченной функцией автоматического удаления вирусов редактированный файл hosts он может принять за инфицированный.

  Ответить  
 
 автор: Trianon   (26.11.2010 в 12:03)   письмо автору
 
   для: soldier   (26.11.2010 в 10:37)
 

>Что получилось у автора, когда он правильно прописал виртуальные хосты, а вот что - на самом сервере по именам у него сайты не открывались.

на самом сервере - это как? Браузер на серверной машине запускать? Зачем?
А браузерам клиентских машин правка серверного /etc/hosts не поможет ни на полдюйма.
Для этого не /etc/hosts ковыряют, а ns-сервер поднимают.

  Ответить  
 
 автор: soldier   (26.11.2010 в 13:27)   письмо автору
 
   для: Trianon   (26.11.2010 в 12:03)
 

Из практики на виндовом серваке даже при поднятом DNS сайты по именам без правки host могут не открываться, особенно если сервер стоит за NAT, т.е. не имеет белого IP, к которому привязан домен.
Если атор не приврал то nslookup:

DNS request timed out.
Не заслуживающий доверия ответ:
&#9562;ь : oilmaster.org.ua
Address: 91.194.80.91

а на сетевой прописан 192.168.1.109, в данном случае мы имеем как минимум статический маршрут, как максимум NAT. Известно что DNS виндовый не Bind, view не умеет и запросы не разделит, посему на сервере без правки hosts сайт по имени не откроется

  Ответить  
 
 автор: Trianon   (26.11.2010 в 13:51)   письмо автору
 
   для: soldier   (26.11.2010 в 13:27)
 

>Из практики на виндовом серваке даже при поднятом DNS сайты по именам без правки host могут не открываться,

Это не повод трогать грязными руками localhost, не так ли?

  Ответить  
 
 автор: soldier   (26.11.2010 в 14:13)   письмо автору
 
   для: Trianon   (26.11.2010 в 13:51)
 

кому он вообще мешает?

  Ответить  
 
 автор: binary   (06.12.2010 в 03:08)   письмо автору
 
   для: toproot   (24.11.2010 в 20:01)
 

Помогите пожалуйста, после добавления этой строчки в конфиг:
<VirtualHost *>
    DocumentRoot "D:/web/имя сайта1"
    ServerAdmin мое мыло
    ServerName www.имя сайта1
    ServerAlias имя сайта1
    ErrorLog "D:/web/logs/имя сайта1/error_log"
    CustomLog "D:/web/logs/имя сайта1/access_log" common
    php_admin_flag log_errors On
    php_admin_value error_log "D:/web/logs/имя сайта1/php_errors"
    php_admin_flag display_errors Off
    php_admin_flag register_globals Off
</VirtualHost>

При обращении к серверу напрямую(например по IP), всеравно обрабатывается директория D:/web/имя сайта1 а не то, что стоит в
DocumentRoot "D:/web/имя сайта0"

когда убираю из конфига директиву VirtualHost, то все работает нормально, где я намудрил?

  Ответить  
 
 автор: soldier   (06.12.2010 в 09:23)   письмо автору
 
   для: binary   (06.12.2010 в 03:08)
 

Вот реальный работающий виртуальный хост

<VirtualHost *:80>
ServerAdmin admin@ххххххх.net
DocumentRoot C:/AppServ/www/ххххххх.net
ServerName ххххххх.net
ServerAlias www.ххххххх.net
ErrorLog logs/ххххххх.net-error_log
CustomLog logs/ххххххх.net-access_log common
</VirtualHost>
не берем в расчет разные пути к корневым каталогам. Все остальное сравниваем и находим отличия.

  Ответить  
 
 автор: binary   (06.12.2010 в 10:22)   письмо автору
 
   для: soldier   (06.12.2010 в 09:23)
 

Теперь у меня так:
<VirtualHost *:80>
ServerAdmin xxx@xxxxxxxxxxxx.net
DocumentRoot D:/web/xxxxxxxxxxxx.net
ServerName xxxxxxxxxxxx.net
ServerAlias www.xxxxxxxxxxxx.net
ErrorLog D:/web/logs/xxxxxxxxxxxx.net/error_log
CustomLog D:/web/logs/xxxxxxxxxxxx.net/access_log common
</VirtualHost>

Но результат тот же.
Без єтого куска - работает DocumentRoot тот, что назначен серверу, а с ним работает только вышеуказанный виртуалхост(
Может быть проблема в том, что у меня корневой сайт xxxxx.net, а виртуал хост yyyyy.xxxxxx.net?


Вот текст конфигурационного файла (все пустые и закоментированные строки удалены):
ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2"
Listen 80
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon
Group daemon
</IfModule>
</IfModule>
ServerAdmin my@email.net
ServerName my.domain.net:80
DocumentRoot "D:/web/my.domain.net"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>
<Directory "D:/web/my.domain.net">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access.log" common
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
DefaultType text/plain
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
PHPIniDir "C:/Program Files/PHP/"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
<VirtualHost *:80>
ServerAdmin my@email.net
DocumentRoot D:/web/photo.my.domain.net
ServerName photo.my.domain.net
ServerAlias www.photo.my.domain.net
ErrorLog D:/web/logs/photo.my.domain.net/error_log
CustomLog D:/web/logs/photo.my.domain.net/access_log common
</VirtualHost>

  Ответить  
 
 автор: soldier   (06.12.2010 в 14:17)   письмо автору
 
   для: binary   (06.12.2010 в 10:22)
 

В DNS соответствующие записи для домена 4 уровня созданы? Для того чтоб апач показывал сайт привязанный к тому или иному домену прежде всего создается DNS запись для этого домена. Т.е. любой сайт с домена начинается а не с апача. Сначала создаются записи в DNS потом под эти записи конфигурируется апач. В вашем случае проблема скорее в отсутствии DNS записи для домена photo.my.domain.net

  Ответить  
 
 автор: binary   (06.12.2010 в 17:36)   письмо автору
 
   для: soldier   (06.12.2010 в 14:17)
 

В DNS созданы обе записи, которые ведут на IP сервера apache.
Оба домена пингуются и их видно через nslookup.
Но когда добавляю в конфигурационный файл вышеуказанный кусок с виртуалхостом, то даже при вбивании айпишника в браузер apache читает с папки "D:/web/photo.my.domain.net " , как бы я захожу через домен 4 уровня, то есть photo.my.domain.net

  Ответить  
 
 автор: binary   (06.12.2010 в 23:09)   письмо автору
 
   для: toproot   (24.11.2010 в 20:01)
 

Снес все под 0.
К стандартному httpd.conf добавил в конец файла:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Program Files/PHP/"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    allow from all 
</Directory>

Все работает нормально.
добавляю
<VirtualHost *:80>
DocumentRoot D:/web/photo.xxx.yyy.net
ServerName photo.xxx.yyy.net
</VirtualHost>

и все, приехали все обращения в к серверу идут на D:/web/photo.xxx.yyy.net
щас повешаюсь

  Ответить  
 
 автор: soldier   (07.12.2010 в 09:15)   письмо автору
 
   для: binary   (06.12.2010 в 23:09)
 

Версия апача какая.? В поздних версиях виртуальные хосты конфигрируются через файл
vhost. Не надо пытаться засунуть в конфиг апача куски кода которых там быть не должно. Для простоты рекомендую поставить сборку AppServ, особенно новичкам. Нечего потыдного вэтом нет вещь удобная я ее успешно использую последние несколько лет. В httpd.conf есть строчка DocumentRoot с указанием пути к корневому каталогу. Если в ней указать путь до корневого каталога сайта то сайт станет сайтом по умолчанию, т.е. при отказе какого либо из виртуальных хостов, запрос по имени неработающего хоста приведет к открытию дефолтного сайта.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования