Сегодня вторник, 17 октября 2017 года
 
 
ГлавнаяApache HTTP Serverконфигурирование httpd-vhosts.conf
ЧерныйКрасныйСерый Увеличить текстУменьшить текстПо умолчанию

Разделы

Apache

сервер Apache
Apache - этапы установки
установка Apache 2.2.16
установка apache 2.2.16 на Windows Vista Ultimate
проверка работоспособности
конфигурирование httpd.conf
установки httpd-vhosts.conf
httpd-userdir.conf и host
тестирование Apache 2.2.16
Apache - ответы на вопросы

Главный сайт сервера

шаблон главного сайта сервера Apache
установка главного сайта сервера Apache
директивы SSI - переменные окружения
скрипты на Perl - вывод переменных окружения
скрипты на Perl - среда кеша
скрипты на PHP - примеры
скрипты на PHP - конфигурация ядра PHP
скрипты на PHP - вывод переменных окружения
SendMail для Windows
отправить почтовое сообщение с сайта

ActivePerl

язык Perl
установка ActivePerl
установка ActivePerl (прод.)
скрипты на Perl - ошибки выполнения

PHP

язык PHP
установка PHP 5.x zip
установка PHP 5.x installer
скрипты PHP
php ini - файл конфигурации
phpmyadmin

MySQL

установка MySQL
настройка MySQL
mysql php

SendMail

установка SendMail

Создание сайта

создание сайтов
регистрация сайта
статистика посещений сайта

Бесплатные сайты

создать бесплатный сайт

Почтовый ящик

почта: почтовый ящик
контакты
карта сайта
поиск по сайту

октябрь 2017 г.
Пн
Вт
Ср
Чт
Пт
Сб
Вс
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
 
 
 


Информация

Apache

Для разработки страниц сайта написанных с использованием современных серверных технологий необходим тестовый сервер установленный на ваш компьютер.

Литература

Apache, MySQL, and PHP Weekend Crash Course.
Автор этой книги гарантирует всем желающим, что изучение HTTP сервера Апаче, MySQL, и PHP займет не более недели! Через несколько дней вы можете, хвастаться тем, что уже всё знаете об Web-сервере Apache, базах данных MySQL и скриптах PHP. Даже если вы никогда раньше не слышали о трёх этих технологиях, через пару дней вы сможите совместно использовать Apache, MySQL и PHP благодаря разработанному и изложенному автором интенсивному курсу обучения из 30 быстрых сессий, Вы будете в состоянии настроить Web-сервер Apache на любой платформе: Windows® или Linux®, вместе со всеми тремя интегрированными технологиями.
Steven M. Schafer.
Книги. Компьютеры и интернет. Интернет и локальные сети.

Apache

После внесения изменений в файлы кофигурации (обычно это делается в программе 'Блокнот'), не забывайте их сохранить и перезагрузить сервер Apache 2.2.16
Для перезагрузки необходимо нажать на ярлык:
restart apache
см. создание ярлыков
Следует помнить, что директивы и параметры сервера считываются из файла httpd.conf только при запуске службы Apache 2.2.16, т. е. при включении компьютера. Без перезапуска Apache вы не увидите результатов от внесенных вами изменений. Но самое неприятное может произойти в том случае, если, не перезапустив службу Apache 2.2.16 (с внесенными некорректными записями в файле httpd.conf) вы выключите компьютер. При повторном включении, может появиться сообщение - "сбой, по крайней мере, в одной службе или драйвере при запуске системы".
См. подробнее - ошибки Apache.

Возможна установка Apache 2.2.16 на следующих операционных системах: Windows NT 4.0
Microsoft Windows Server 2000
Microsoft Windows XP Professional
Microsoft Windows Server 2003
Microsoft Windows Server 2007
Microsoft Windows Server 2008
Microsoft Windows Vista.
На 32 и 64-разрядных версиях

Страница, защищена от копирования - Copyscape


httpd-vhosts.conf -  файл конфигурации виртуальных хостов.

Apache HTTP Server 2.2.16

apache
 Конфигурирование файла - httpd-vhosts.conf  

Следуя, приведенным ниже рекомендациям, вы получите

рабочий сервер Apache 2.2.16


Концепция виртуальных хостов позволяет создавать, конфигурировать и обслуживать на одном (физическом) веб-сервере Apache множество сайтов. Виртуальный хост может быть «привязанным к IP-адресу», - используется отдельный IP-адрес для каждого сайта или «привязанным к имени» - один IP-адрес для нескольких сайтов с различными именами.

Конфигурирование Apache 2.2 для поддержки виртуальных хостов.

Существует два способа конфигурирования Apache 2.2 для поддержки некоторого числа виртуальных хостов:

  • виртуальные хосты на основе имени
  • виртуальные хосты на основе IP

Возможен и смешанный вариант конфигурирования.

Виртуальные хосты на основе имени.

Все версии, начиная с Apache 1.1., наряду с традиционным основанном на IP адресе, методом поддерживают и метод на основе имени виртуальных хостов. Последний вариант виртуальных хостов называют хост-привязанными или не-IP виртуальными хостами.

Преимущества, от использования поддержки виртуальных хостов на основе имени

  • фактически неограниченное число обслуживаемых сайтов,
  • простота конфигурации и использования,
  • отсутствие необходимости в дополнительных аппаратных средствах и программном обеспечении
При виртуальном хостинге на основе имени в директиве
NameVirtualHost - указывается 32-разрядный IP-адрес : № порта - 127.0.0.8:80, который, затем в секциях
VirtualHost 127.0.0.8:80 сопоставляется именам доменов.

NameVirtualHost 127.0.0.8:80 - привязывает виртуальные хосты (в приведенном ниже примере) к именам сайтов указанных в секциях:

<VirtualHost 127.0.0.8:80>
ServerName www.dummy-host.httpserver.ru
......

   и
<VirtualHost 127.0.0.8:80>
ServerName www.dummy-host2.httpserver.ru
......

При получении запроса сервер проверяет, соответствует ли входящий адрес и порт, описанным в секциях VirtualHost 127.0.0.8:80 и имеется ли запись - 127.0.0.8:80 в директиве NameVirtualHost. Если соответствует, то он перебирает секции VirtualHost, в заголовках которых указан входящий адрес. Запросы на адрес 127.0.0.8 и 80-й порт будут распределяться только между вышеуказанными виртуальными хостами.

Рассмотрим сразу смешанный вариант, который включает -

виртуальные хосты на основе IP-адреса и на основе имен сайтов.


Конфигурирование файла - httpd-vhosts.conf.

httpd-vhosts.conf.

C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf

# Пример смешанного использования виртуальных хостов.
# Веб-сервер Apache позволяет обслуживать фактически неограниченное число сайтов.
# Для размещения и обслуживания необходимого количества доменов/имен хостов на
# вашей машине, вы должны установить VirtualHost-контейнеры для каждого из них.
# В большинстве конфигураций использует только имя виртуальных хостов,
# при этом для всех имен, используется один адрес IP, например, 127.0.0.8:80
#

Пример виртуальных хостов Apache 2.2.16 основанных на имени.

#
# NameVirtualHost 127.0.0.8:80 - привязывает виртуальные хосты к адресу -127.0.0.8 и 80-му
# порту:
NameVirtualHost 127.0.0.8:80
# Пример виртуальных хостов на основе имени:
# При виртуальном хостинге на основе имени в директиве NameVirtualHost
# сопоставляется 32-разрядный IP-адрес - именам доменов указанных
# в секциях <VirtualHost 127.0.0.8:80> в директивах ServerName.

# Имена хостов - www.dummy-host.httpserver.ru и www.dummy-host2.httpserver.ru
# сгенерированы программой установки сервера Apache 2.2.16 и, естественно могут быть
# изменены. Для этого, например, нужно везде секции <VirtualHost 127.0.0.8:80>
# имя - dummy-host.httpserver.ru заменить на - new_name.ru
  # Сайт - www.dummy-host.httpserver.ru (www. кукла-host.httpserver.ru)

<VirtualHost 127.0.0.8:80>
  ServerAdmin webmaster@dummy-host.httpserver.ru
  DocumentRoot c:/www/docs/dummy-host.httpserver.ru
  ServerName www.dummy-host.httpserver.ru
  ErrorLog c:/www/docs/dummy-host.httpserver.ru/logs/dummy-host.httpserver-error.log
  CustomLog c:/www/docs/dummy-host.httpserver.ru/logs/dummy-host.httpserver-access.log common
</VirtualHost>

# А также, файле C:\WINDOWS\system32\drivers\etc\hosts запись
127.0.0.8 www.dummy-host.httpserver.ru заменить на
127.0.0.8 www.new_name.ru


  # Сайт - www.dummy-host2.httpserver.ru (www. кукла-host2.httpserver.ru)

<VirtualHost 127.0.0.8:80>
  ServerAdmin webmaster@
dummy-host2.httpserver.ru
  DocumentRoot c:/www/docs/
dummy-host2.httpserver.ru
  ServerName www.
dummy-host2.httpserver.ru
  ErrorLog c:/www/docs/
dummy-host2.httpserver.ru/logs/dummy-host2.httpserver-error.log
  CustomLog c:/www/docs/
dummy-host2.httpserver.ru/logs/dummy-host2.httpserver-access.log common
</VirtualHost>

# Сайты www.dummy-host.httpserver.ru  и  www.dummy-host2.httpserver.ru
# размещены в каталоге C:\www\docs\.
# В их секциях   <VirtualHost 127.0.0.8:80>   отсутствуют блоки директив, например, в -
# www.dummy-host.httpserver.ru нет блоков:
#<IfModule alias_module>
#      ScriptAlias /cgi-bin/ "c:/www/docs/dummy-host2.httpserver.ru/cgi-bin/"
#</IfModule>
#<Directory "c:/www/docs/dummy-host2.httpserver.ru/www">
#      Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#      AllowOverride All
#      Order allow,deny
#      Allow from all
#      AddHandler server-parsed .shtml .shtm .html .htm
#</Directory>
Поэтому, в сайтах  - 
www.dummy-host.httpserver.ru  и  www.dummy-host2.httpserver.ru
возможно только листать страницы (как на большинстве бесплатных хостингов)

# Заготовка для вашего сайта. Уберите символ комментария (#) перед строками
# этой секции и замените - имя_сайта.ru - на имя вашего сайта.
# <VirtualHost 127.0.0.4:80>
# ServerAdmin webmaster@имя_сайта.ru
# DocumentRoot /www/docsимя_сайта.ru /www
# ServerName имя_сайта.ru
# ServerAlias www.имя_сайта.ru
# ErrorLog c:/www/docs/имя_сайта.ru /logs/имя_сайта.ru -error.log
# CustomLog c:/www/docs/имя_сайта.ru /logs/имя_сайта.ru -access.log common
# CustomLog c:/www/docs/имя_сайта.ru /logs/имя_сайта.ru -access.log combined
# <IfModule alias_module>
# ScriptAlias /cgi-bin/ "c:/www/docs/имя_сайта.ru/cgi-bin/"
# </IfModule>
# <IfModule mime_module>
# AddOutputFilter INCLUDES .shtml .php
# </IfModule>
# <Directory "c:/www/docs/имя_сайта.ru /www">
# Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# AllowOverride All
# Order allow,deny
# Allow from all
# AddHandler server-parsed .shtml .shtm .html .htm
# </Directory> </VirtualHost>


В файле C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-userdir.conf
Должны быть соответствующие записи для каталогов пользователей. Подробней см. следующую страницу.
# UserDir "www/docs"
# UserDir "www/htdocs"
# UserDir "www/public_html"
# и далее.

# В файл C:\WINDOWS\system32\drivers\etc\hosts должны быть внесены записи:
# 127.0.0.8    www.dummy-host.httpserver.ru
# 127.0.0.8    www.dummy-host2.httpserver.ru
# 127.0.0.4    www.имя_сайта.ru      имя_сайта.ru    # без www перед именем сайта
# чтобы не набирать www перед именем сайта - имя_сайта.ru
# естественно без знаков комментария (#) перед строками начинающимися с 127.0.0.8 и 127.0.0.4
# Все параметры, не указанные в блоках <VirtualHost> наследуются
# от главного хоста - httpserver.ru или указанных в файлах .htaccess
#

Пример виртуальных хостов основанных на IP-адресах.

#
# Виртуальный хост может быть привязанным к IP-адресу, что означает использование
# отдельного IP-адреса для каждого сайта.
# Сайт - www.name.ru - 127.0.0.6:80 и сайт - www.name1.ru - 127.0.0.7 :80

# Сайт - www.name.ru - размещен в каталоге - C:/www/htdocs/name.ru/www

<VirtualHost 127.0.0.6:80>
      ServerAdmin webmaster@
name.ru
      DocumentRoot /www/
htdocs/name.ru/www
      ServerName www.name.ru
      ErrorLog c:/www/
htdocs/name.ru/logs/name.ru-error.log
      CustomLog c:/www/
htdocs/name.ru/logs/name.ru-access.log common
<IfModule alias_module>
      ScriptAlias /cgi-bin/ "c:/www/
htdocs/name.ru/cgi-bin/"
</IfModule>
<IfModule mime_module>
      AddOutputFilter INCLUDES .shtml
.php
</IfModule>
<Directory "c:/www/
htdocs /name.ru/www">
      Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
      AddHandler server-parsed .shtml .shtm .html .htm
</Directory>
</VirtualHost>

# Обратите внимание. В директиве AddHandler server-parsed .shtml .shtm .html .htm
# указаны файлы не только с расширением .shtml но и .shtm .html .htm.
# Сделано это для того, чтобы желающий иметь сервер для отладки Веб-страниц, не
# задумывался - в файлы с каким расширением помещать директивы SSI и Perl-скрипты.

# Сайт - www.name1.ru - размещен в каталоге - C:/www/public_html/name1.ru/www

<VirtualHost 127.0.0.7:80>
      ServerAdmin webmaster@name1.ru
      DocumentRoot /www/
public_html/name1.ru/www
      ServerName www.name1.ru
      ErrorLog c:/www/
public_html/name1.ru/logs/name1.ru-error.log
      CustomLog c:/www/
public_html/name1.ru/logs/name1.ru-access.log common
<IfModule alias_module>
      ScriptAlias /cgi-bin/ "c:/www/
public_html/name1.ru/cgi-bin/"
</IfModule>
<Directory "c:/www
/public_html/name1.ru/www">
      Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
      AddHandler server-parsed .shtml .shtm
</Directory>
</VirtualHost>

# Обратите внимание. В директиве AddHandler server-parsed .shtml .shtm
# указаны файлы только с расширениями - .shtml и .shtm
# Директивы SSI и Perl-скрипты размещенные в файлах с расширениями - .html и .htm
# выполняться не будут.

В файл C:\WINDOWS\system32\drivers\etc\hosts должна быть внесена запись:
127.0.0.6     www.name.ru       name.ru
127.0.0.7     www.name1.ru    name1.ru
# чтобы не набирать www перед именем сайта - name.ru
# естественно без знака комментария (#) перед строкой - 127.0.0.2  www.name.ru   name.ru

# Почти любая директива конфигурации Apache может быть помещена в контейнер VirtualHost,
# за исключением :
# ServerType, StartServers, MaxSpareServers, MinSpareServers, MaxRequestsPerChild, BindAddress,
# Listen, PidFile, TypesConfig, ServerRoot и NameVirtualHost.

Проверка файла конфигурации виртуальных хостов - httpd-vhosts.conf

Проверить файл конфигурации виртуальных хостов можно с помощью команды - httpd -S
Эта команда проверит файл httpd-vhosts.conf на правильность написания конфигурационных директив и поможет найти возможные ошибки.

Создайте файл - httpd-S.cmd с таким содержанием:
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -S
pause
и разместите его в каталог -
C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd-S.cmd
После запуска файла httpd-S.cmd - вы увидите:
VirtualHost configuration:

127.0.0.8:80    is a NameVirtualHost

default server www.dummy-host.httpserver.ru
(C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:22)

port 80 namevhost www.dummy-host.httpserver.ru
(C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:22)

port 80 namevhost www.dummy-host2.httpserver.ru
(C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:31)

127.0.0.7:80 www.name1.ru
(C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:83)

127.0.0.6:80 www.name.ru
(C:/Program Files/Apache Software Foundation/Apache2.2/conf/extra/httpd-vhosts.conf:65)

Syntax OK

  Термин Виртуальный - якобы существующий, получил распространение в конце 80-х годов. Компьютеры того времени не имели жестких дисков и при включении могли только подвести считывающую головку дисковода к первой дорожке гибкого диска. В начале работы, с пятидюймового системного диска емкостью 256 Кб загружались в память основные компоненты операционной системы (OS-DOS). Затем, с другой дискеты, программное обеспечение, например, Бейсик. Созданная на нем программа записывалась на гибкий диск. Для её исполнения необходимо было загрузить в память интерпретатор Бейсика. То есть, постоянно работал дисковод, приходилось менять гибкие диски, что занимало много времени. На определенном этапе, с увеличением емкости памяти, появилась возможность часть её выделять и присваивать имя. В эту, именованную, допустим, как диск N, область памяти (получившую название - виртуальный диск), переписывалось нужное программное обеспечение. Отпадала необходимость постоянно обращаться к гибким дискам, что в десятки раз увеличивало производительность работы.

Дальше не все однозначно - существует множество определений.

Веб-узел - узел — каждый подключенный к Интернету компьютер, независимо от выполняемых функций (сервер, компьютер клиента, DNS и FTP-сервер и т. д.) — имеет свой уникальный IP-адрес. Иначе обмен информацией - невозможен. Иначе узел - это адрес. Любой узел является хостом. Например, немного безобидных сведений о вас:

ваш IP
54.224.43.96

пришли на сайт
avege.ru

на эту страницу
/russian/apache/apache_04.shtml

ваш браузер
CCBot/2.0 (http://commoncrawl.org/faq/)

имя и версия
протокол сервера
HTTP/1.0


Итак, вы пришли
на сайт  avege.ru
страницу  /russian/apache/apache_04.shtml
то есть, произошел обмен информацией между
сервером  avege.ru   и вашим IP  54.224.43.96

Виртуальные хосты - это концепция, позволяющая нескольким логическим веб-серверам располагаться на одном физическом сервере (возможно с одним IP адресом)

Протокол HTTP/1.0 прямо не поддерживал виртуальные хосты. Веб-сервер, управляющий доменами, различал запросы по IP адресу или по номеру порта, для виртуальных хостов. Серверу необходим был для каждого домена отдельный IP адрес. В связи с ростом Интернета (только русскоязычная его часть насчитывает около 500000 сайтов), количество свободных IP адресов сократилось. Можно было добавлять к IP-адресу различные номера портов. Но это было бы неудобным для пользователей.

В HTTP/1.1 добавлено, для HTTP запроса, поле HOST - это дает возможность веб-серверам обслуживать множество доменов по одному IP адресу и порту.
См. пример выше - dummy-host.httpserver.ru и dummy-host2.httpserver.ru.

Хост — не обязательно отдельный узел, например — виртуальный хост. Часто хост имеет собственное уникальное доменное имя. Главное отличие хоста от узла — то, что он может быть виртуальным.

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

Виртуальный хост — это хост, не имеющий уникального IP-адреса в WWW и, поэтому, доступный только по имени, например, DNS-имени, т. е. к нему нельзя обратиться  по IP-адресу.

Остановимся на наиболее обтекаемом определении -

Термин виртуальный хост относится к практике размещения более чем одного веб-сайта (см. пример выше - www.name.ru и dummy-host.httpserver.ru) - на одной машине.

На следующей странице приведено описание настройки параметров файлов httpd-userdir.conf и hosts

Антоненков В. Е.  

copyright © 1999-2009, avege.ru. All rights reserved.
[5]
опубликовано - август 2003 г.
обновлено -Monday, 16-Oct-2017 11:50:45 MSK