Руководство FreeBSD
Пред. | Глава 23. Сетевые серверы | След.

# 23.8. Apache HTTP сервер

Предоставил Murray Stokely.

## 23.8.1. Обзор

FreeBSD используется в качестве платформы для многих из самых нагруженных серверов в мире. Большинство серверов в интернет используют Apache HTTP сервер. Пакеты Apache должны быть включены в поставку FreeBSD. Если вы не установили их во вместе с системой, воспользуйтесь портами `www/apache13` или `www/apache2`.

Как только Apache был успешно установлен, его необходимо настроить.

> Замечание: В этом разделе рассказывается о версии 1.3.X Apache HTTP сервера, поскольку эта версия наиболее широко используется в FreeBSD. Apache 2.X содержит много новых технологий, но здесь они не обсуждаются. За дополнительной информацией о Apache 2.X, обращайтесь к http://httpd.apache.org/.

## 23.8.2. Настройка

В FreeBSD основной файл настройки Apache HTTP сервера устанавливается в `/usr/local/etc/apache/httpd.conf`. Это обычный текстовый UNIX® файл настройки с строками комментариев, начинающимися с символа #. Исчерпывающее описание всех возможных параметров настройки находится за пределом рассмотрения этой книги, поэтому здесь будут описаны только наиболее часто модифицируемые директивы.

ServerRoot "/usr/local"

  Указывает верхний каталог установки Apache по умолчанию. Бинарные файлы находятся в `bin` и `sbin`, подкаталоги расположены относительно корневого каталога сервера, файлы настройки находятся в `etc/apache`.

ServerAdmin you@your.address

  Адрес, на который должны будут отправляться сообщения о проблемах с сервером. Этот адрес выводится на некоторые генерируемые сервером страницы, например с сообщениями об ошибках.

ServerName www.example.com

  ServerName позволяет вам устанавливать имя хоста, которое отправляется обратно клиентам, если оно отличается от того, с которым настроен хост (например, использование `www` вместо реального имени хоста).

DocumentRoot "/usr/local/www/data"

  DocumentRoot: Каталог, внутри которого будут храниться документы. По умолчанию, все запросы обрабатываются внутри этого каталога, но символические ссылки и синонимы могут использоваться для указания на другие каталоги.

Хорошей идеей будет сделать резервные копии настроек Apache перед внесением изменений. Как только вы будете удовлетворены первоначальной настройкой, можно запускать Apache.

## 23.8.3. Запуск Apache

Apache не запускается из inetd, как это делают многие другие сетевые серверы. Он настроен для автономного запуска, чтобы обеспечивать большую производительность при обработке HTTP запросов от браузеров клиентов. Для упрощения запуска, остановки и перезапуска сервера существует shell скрипт. Для запуска Apache в первый раз просто выполните:

    # /usr/local/sbin/apachectl start

Вы можете остановить сервер в любой момент, выполнив:

    # /usr/local/sbin/apachectl stop

После внесения любых изменений в файл настроек, вам потребуется перезапустить сервер:

    # /usr/local/sbin/apachectl restart

Для перезапуска Apache без прерывания имеющихся соединений, выполните:

    # /usr/local/sbin/apachectl graceful

Дополнительная информация находится на странице справочного руководства apachectl(8).

Для запуска Apache при старте системы, добавьте в `/etc/rc.conf` следующую строку:

    apache_enable="YES"

Если вы хотите передать программе Apache `httpd` дополнительные параметры командной при загрузке системы, они могут быть помещены в дополнительную строку `rc.conf`:

    apache_flags=""

Теперь, когда веб сервер запущен, вы можете просмотреть свой веб сайт, задав в строке браузера адрес http://localhost/. По умолчанию отображается веб страница `/usr/local/www/data/index.html`.

## 23.8.4. Виртуальный хостинг

Apache поддерживает два различных типа виртуального хостинга (Virtual Hosting). Первый метод основан на именах (Name-based Virtual Hosting). Он использует полученные от клиента заголовки HTTP/1.1 для определения имени хоста. Это позволяет многим различным доменам использовать один и тот же IP адрес.

Для настройки Apache на использование этого типа хостинга добавьте в `httpd.conf` запись подобную следующей:

    NameVirtualHost *

Если веб сервер назывался `www.domain.tld` и вы хотите настроить виртуальный домен для `www.someotherdomain.tld`, необходимо добавить в `httpd.conf` следующие записи:

    <VirtualHost *>
    ServerName www.domain.tld
    DocumentRoot /www/domain.tld
    <VirtualHost>

    <VirtualHost *>
    ServerName www.someotherdomain.tld
    DocumentRoot /www/someotherdomain.tld
    </VirtualHost>

Замените адреса и пути к документам на те, что вы будете использовать.

За дополнительной информацией по настройке виртуальных хостов обращайтесь к официальной документации Apache: http://httpd.apache.org/docs/vhosts/

## 23.8.5. Модули Apache

Существуют множество различных модулей Apache, которые добавляют функциональность к основному серверу. Коллекция портов FreeBSD предоставляет простой способ установки Apache с некоторыми наиболее популярными дополнительными модулями.

### 23.8.5.1. mod_ssl

Модуль mod_ssl использует библиотеку OpenSSL для сильной криптографии через протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1). Этот модуль содержит все необходимое для запроса подписанного сертификата из центра сертификации для защищенного веб сервера на FreeBSD.

Если вы еще не установили Apache, версия Apache с mod_ssl может быть установлена через порт `www/apache13-modssl`. Поддержка SSL также присутствует и включена по умолчанию для порта `www/apache2`.

### 23.8.5.2. mod_perl

Проект интеграции Apache/Perl объединяет мощь языка программирования Perl и HTTP сервера Apache. С модулем mod_perl возможно написание модулей Apache полностью на Perl. Кроме того, постоянно запущенный встроенный в сервер интерпретатор позволяет не тратить ресурсы на запуск внешнего интерпретатора и время на запуск Perl.

Если вы еще не установили Apache, его версия с модулем mod_perl может быть установлена через порт `www/apache13-modperl`.

### 23.8.5.3. PHP

PHP, сокращение от ''PHP: Hypertext Preprocessor'' это широко используемый Open Source скриптовый язык общего назначения, который в основном предназначен для веб разработки и может быть встроен в HTML. Его синтаксис был взят от C, Java™, и Perl и язык легок в изучении. Основное преимущество языка в том, что он позволяет веб разработчикам создавать веб страницы быстро, но есть и множество других возможностей.

PHP может быть установлен из порта `lang/php5`.

Пред. | Начало | След.
BIND9 и FreeBSD | Уровень выше | Файл сервер и печать для Microsoft® Windows® клиентов (Samba)

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.