<-
Apache > HTTP сервер > Документация > Версия 2.0

Компилирование и установка

Доступные языки:  de  |  en  |  es  |  ja  |  ko  |  ru 

This translation may be out of date. Check the English version for recent changes.

Этот документ освещает вопросы компилирования и установки сервера Apache только на UNIX и UNIX-подобных системах. Если вы хотите установить сервер под Windows, то вам необходимо прочесть документ "Использование Apache под Microsoft Windows". Информация, касающаяся остальных платформ, содержится в документе "Платформы".

Среда конфигурирования и установки сервера полностью отличается от той, которая была в Apache 1.3. Apache 1.3 использовал обычный набор скриптов, позволявший упростить процесс установки. Apache 2.0 теперь использует системы libtool и autoconf, что делает сервер похожим на другие программные продукты с открытым исходным кодом (Open Source projects).

См. также

top

Краткий обзор "для нетерпеливых"

Загрузка $ lynx http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz
Распаковка $ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar
Конфигурирование $ ./configure --prefix=PREFIX
Компилирование $ make
Установка $ make install
Настройка $ vi PREFIX/conf/httpd.conf
Пробный запуск $ PREFIX/bin/apachectl start

NN необходимо заменить на текущий младший номер версии, а вместо PREFIX надо указать путь, по которому должен быть установлен сервер. Если PREFIX не указан, то установка по умолчанию производится в каталог /usr/local/apache2.

Более подробно все этапы компилирования и установки сервера рассмотрены ниже, причем начинается следующий раздел с описания системных требований, необходимых, для того чтобы установка прошла успешно.

top

Требования

Требования, необходимые для успешной сборки сервера:

Дисковое пространство
Убедитесь, что на диске есть как мининимум 50 MB свободного места для временных файлов. После установки Apache занимает приблизительно 10 MB. Точный размер занимаемого места будет зависеть в основном от выбранной конфигурации и дополнительно устанавливаемых модулей, не входящих в дистрибутив Apache.
ANSI-C компилятор и необходимая среда сборки
Убедитесь, что на вашей системе установлен ANSI-C компилятор. Рекомендуется использовать GNU C компилятор (GCC) от Free Software Foundation (FSF) (версии 2.7.2 вполне достаточно). Если у вас другой компилятор, то выясните, поддерживает ли он стандарт ANSI. Проверьте также, чтобы в переменной окружения PATH был указан каталог, содержащий основные утилиты, необходимые для сборки (make и другие).
Синхронизация времени
В некоторых заголовках HTTP протокола указывается время. Поэтому вам необходимо выяснить, как можно установить в вашей системе средство синхронизации времени. Обычно для этих целей используются программы ntpdate или xntpd, основанные на сетевом протоколе синхронизации времени (Network Time Protocol - NTP). Для получения более подробной информации об NTP и серверах синхронизации времени, обратитесь в группу новостей Usenet comp.protocols.time.ntp, а также посетите домашнюю страницу NTP
Perl 5 [НЕОБЯЗАТЕЛЬНО]
Для выполнения некоторых вспомогательных скриптов, таких как apxs или dbmmanage (которые написаны на Perl), необходим интерпретатор с языка Perl (версии 5.003 или выше достаточно). Если конфигурационный скрипт `configure' не найдет его в вашей системе, то вы все равно сможете собрать и установить Apache 2.0 - в этом случае не будут работать только перечисленные выше вспомогательные скрипты. Если в вашей системе установлено несколько интерпретаторов с языка Perl (например Perl 4 и Perl 5), то для того чтобы скрипт ./configure выбрал нужный, выполните его с опцией --with-perl (описание смотрите ниже).
top

Загрузка

Apache можно загрузить со страницы загрузки Apache HTTP Software Foundation, на которой также приводится список некоторых зеркальных серверов. Здесь вы найдете самую последнюю стабильную версию сервера.

После загрузки, особенно если она происходила с зеркального сервера, необходимо убедиться, что у вас в руках полная, неизмененная версия HTTP сервера Apache. Это выполняется тестированием архива (tarball) на соответствие PGP подписи, что является, в свою очередь, двушаговой процедурой. Во-первых, вы должны загрузить файл KEYS со страницы загрузки Apache Software Foundation. (Для того чтобы быть уверенным в том, что сам файл KEYS не был изменен, его лучше взять из предыдущего дистрибутива Apache или взять с сервера открытых ключей.) Затем ключи можно импортировать в вашу личную базу данных ключей посредством следующих команд (в зависимости от версии pgp):

$ pgp < KEYS

или

$ gpg --import KEYS

Следующий шаг заключается в непосредственной проверке архива (tarball) с использованием PGP подписи, которую всегда надо брать на основном веб-сервере Apache. Файл с PGP подписью имеет то же имя, что и архив дистрибутива плюс окончание .asc. Проверить дистрибутив можно, набрав следующие команды (опять же, это зависит от версии pgp, установленного в вашей системе):

$ pgp httpd-2_0_NN.tar.gz.asc

или

$ gpg --verify httpd-2_0_NN.tar.gz.asc

Вы должны увидеть что-то вроде:

Good signature from user "Martin Kraemer <martin@apache.org>".

В зависимости от доверительных отношений, содержащихся в вашей базе данных ключей, вы можете также получить сообщение о том, что отношение между ключем и тем, кто им подписался, невозможно установить. Это не должно вас беспокоить в том случае, если вы уверены в подлинности файла KEYS.

top

Распаковка

Распаковка архива исходных кодов Apache HTTP сервера заключается в его непосредственной распаковке и разархивировании (untarring):

$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar

После выполнения этих команд будет создан новый каталог с исходными кодами дистрибутива. Вы должны зайти в этот каталог, прежде чем начнете компилировать сервер.

top

Конфигурирование дерева исходных кодов

Следующий шаг заключается в конфигурировании дерева исходных кодов в соответствии с той системой, на которую вы устанавливаете сервер, и вашими собственными нуждами. Это делается при помощи скрипта configure, расположенного в корневом каталоге дистрибутива. Разработчики, загружающие дерево исходных кодов посредством CVS, должны установить в своей системе утилиты autoconf и libtool и выполнить программу buildconf, прежде чем они смогут продолжнить установку. В официальных выпусках сервера этого делать не требуется.

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

Для того чтобы получить представление о гибкости процесса конфигурирования Apache, рассмотрите приведенный ниже типичный пример запуска скрипта ./configure. Такая конфигурация позволяет компилировать сервер в каталог /sw/pkg/apache, используя указанный компилятор с несколькими предназначенными для него опциями командной строки, и установить еще два добавочных модуля mod_rewrite и mod_speling, которые можно будет потом использовать посредством механизма DSO.

$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared

При выполнении, скрипт configure проверяет, установлено ли в вашей системе все необходимое, а затем создает Make-файлы (Makefiles), которые будут затем использованы при компилировании сервера.

Наиболее простой способ узнать обо всех доступных конфигурационных опциях - это выполнить команду ./configure --help. На экран будет выведено краткое описание практически всех доступных опций и переменных окружения.

Переменные окружения

Программа autoconf использует ряд переменных окружения для конфигурирования среды сборки. Вообще, посредством этих переменных можно изменить лишь метод сборки сервера - контролировать включение и выключение дополнительных опций сервера этим невозможно. Эти переменные можно включить в среду до вызова скрипта configure, но проще всего это сделать так, как было показано в примере выше.