Регистрация доменных имен Оглавление Server Side Includes

Конфигурирование веб-сервера Apache

Установка веб-сервера Apache не вызывает больших затруднений как под Windows, так и под Unix. Все вопросы при установки не выходят за рамки знаний обычного пользователя. Наиболее сложным моментом является конфигурирование и подключение дополнительных модулей. Предполагая, что наибольшее число читателей будут конфигурировать сначала веб-сервер на своей локальной машине, скорее всего под управлением Windows, то начнем рассмотрение конфигурации веб-сервера Apache именно с этого варианта.

Первое, что вам нужно проверить, это наличие протокола TCP/IP, и так называемой, обратной петли. В командной строке дайте команду route print. Результат ее должен начинаться со следующих строк:

C:\>route print

Активные маршруты:

  Сетевой адрес            Маска    Адрес шлюза            Интерфейс  Метрика
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1       1

Сейчас, наверное, уже сложно представить себе вариант отсутствия обратной петли, т.к. большинство компьютеров имеют выход в Интернет. Однако, года четыре назад я столкнулся с такой проблемой, когда начинал осваивать MS SQL Server 6.5. Если все же вы не получили должного результата команды route print, добавьте протокол TCP/IP. Для этого на рабочем столе щелкните правой кнопки мыши на иконке "Сетевое окружение" и выберете меню "свойства". Далее кнопку "добавить".

По умолчанию, конфигурационный файл Apache httpd.conf лежит в папке C:\Program Files\Apache Group\Apache\conf. При запуске веб-сервера на локальной машине под Windows мне пришлось прописать в файл httpd.conf строчку ServerName localhost. Без этой строки он не запускался. В юникс такая строчка не требуется. Запускать и останавливать веб-сервер надо при помощи иконок лежащих в Пуск->Программы->Apache Web Server. Теперь запускайте веб-сервер, щелкните в меню Пуск->Программы->Apache Web Server->Start Apache. Запустите обозреватель Internet Explorer и введите http://127.0.0.1/. Вы увидите ответ веб-сервера. У меня на экране появилась страничка следующего содержания:


Not Acceptable

An appropriate representation of the requested resource / could not be found on this server.

Available variants:


Apache/1.3.12 Server at localhost Port 80

Щелкните на ссылку index.html.en и вы попадете на главную страницу веб-сервера, с которой можно попасть на документацию по веб-серверу - ссылка documentation (http://127.0.0.1/manual/index.html).

Теперь переходим к работе с виртуальными хостами. Веб-сервер Apache, IIS или любой другой обслуживает не один веб-сайт, а несколько десятков. Каждый из них имеет свое символическое имя, но все они указывают на один и тот же IP-адрес в базе данных DNS. На локальной машине мы не будем развертывать DNS-сервер, чтобы завести несколько веб-сайтов. Настройка DNS-сервера выходит за рамки данной книги. В операционных системах Unix и Windows есть, так называемая, локальная база DNS - это файл hosts. В Unix он лежит в каталоге /etc, в Windows - c:\windows, в WinNT - c:\WINNT\system32\drivers\etc. Любое приложение, прежде чем соединится с узлом, вызывает системную функцию gethostbyname, которая возвращает IP-адрес. Система, прежде чем обращаться к DNS-серверу просматривает файл hosts на наличие в нем данного имени хоста. Формат этого файла предельно простой.

 # IP-адрес               имя хоста
 127.0.0.1                localhost
 127.0.0.1                it.ru
 

Таким образом вы можете передопределить для программ своей машины и IP-адрес microsoft.com. Но это переопределение будет действовать только для вашей машины, т.к. бругие компьютеры будут получать IP-адрес microsoft.com с DNS-серверов.
Добавьте в свой файл hosts вторую строчку из приведенного примера. И затем, в конфигурационный файл Apache httpd.conf добавьте следующее строки:

NameVirtualHost 127.0.0.1

<VirtualHost it.ru>
  ServerAdmin igor@itsoft.ru
  DocumentRoot c:\projects\www\itsoft
  ServerName it.ru
  ErrorLog   c:\projects\www\itsoft\logs\error.log
  CustomLog  c:\projects\www\itsoft\logs\custom.log combined
  ScriptAlias /cgi-bin "c:\projects\www\itsoft\cgi-bin"
</VirtualHost>
 

NameVirtualHost задает IP-адрес, на котором будут висеть веб-узлы. Этих директив может быть несколько. Теоретически, в сервере имеется несколько сетевых карт, и у каждой сетевой карты может быть несколько IP-адресов. Чаще всего у вас будет одна карточка с реальным IP-адресом и одна или две сетевых карты с виртуальным IP-адресом локальной сети, т.к. ваш сервер еще будет обеспечивать доступ компьютеров локальной сети к Интернет. В директиве VirtualHost должен стоять IP-адрес, но можно также указать и имя хоста, указывающего на этот IP. В нашем случае, это имя хоста it.ru, которое указывает на 127.0.0.1. ServerAdmin содержит адрес электронной почты, который будет выдаваться клиентам при возникновение каких-либо ошибок, например, при аварийном заверении CGI-программы. DocumentRoot задает путь к корню веб-сервера. ServerName содержит имя веб-сервера. Далее идут пути к логам веб-сервера. Стого рекомендую размещать логи в корне самого веб-сайта, а не где-нибудь еще. В реальной жизни вы вряд ли будете иметь доступ ко всему жесткому диску сервера. У веб-мастера будет доступ по ftp только к содержимому папки веб-сайта. Так что, если логи будут не внутри папки веб-сайта, то их не сможет просматривать веб-мастер. И наконец, ScriptAlias /cgi-bin "c:\projects\www\itsoft\cgi-bin" задает папку, где будут лежать исполняемые файлы. Имя этой папки не обязательно cgi-bin, но желательно придерживаться исторических традиций. Поясню более детально, что это за каталог. По умолчанию, при запросе любого файла с веб-сервера, он тут же начнется скачиваться клиенту. При запросе же исполняемого файла из папки cgi-bin, этот файл сначала будет запущен веб-сервером, а потом клиенту будет передано то, что напечатает этот исполняемый файл на стандартный поток вывода( STDOUT ). Обратите внимание, что при запросе исполняемого файла из папки, не прописанной в httpd.conf как ScriptAlias /cgi-bin "PathToFolder", вы получите сам исполняемый файл, а не результат его работы. Особо будьте бдительны, если вы будете использовать не бинарные исполняемые файлы, а скриптовые исполняемые файлы. Злоумышленник, заполучив их, сможет прочитать и найти дыру в вашем веб-узле. Невинная гостевая книга или отправка почтового сообщения могут привести не только к неправильной работе этих скриптов и падению веб-узла, но и падению\зависанию всего сервера со всеми размещенными на нем веб-узлами.

Далее создайте папку по адресу c:\projects\www\ с именем itsoft. Путь и имя лучше переправьте. Так вы натолкнетесь на ошибки, связанные с неправильным путем и лучше усвоите материал, исправляя их. В папке itsoft создайте файл index.html, поддиректорию logs с файлами error.log и custom.log. Теперь перезагрузите веб-сервер Apache. Наберите в броузере it.ru и вы увидите содержание index.html. Вот так вы создали свой первый веб-сайт. Теперь можете размещать на нем документы и скрипты. Далее вас ждет увлекательное путешествие по различным технологиям построения веб-сайтов.