Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!diplom_Lazutin.doc
Скачиваний:
4
Добавлен:
27.10.2018
Размер:
672.77 Кб
Скачать

2.2 Инсталляция web-сервера Apache

2.2.1 Сборка web-сервера Apache

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

  1. Дисковое пространство

На диске должно быть как минимум 50 Mб свободного места для временных файлов. После установки Apache занимает приблизительно 10 Mб. Точный размер занимаемого места будет зависеть в основном от выбранной конфигурации и дополнительно устанавливаемых модулей, не входящих в дистрибутив Apache.

  1. ANSI-C компилятор и необходимая среда сборки

В вашей системе должен присутствовать ANSI-C компилятор. Рекомендуется использовать GNU C компилятор (GCC) от Free Software Foundation (FSF) (версии 2.7.2 вполне достаточно). Также стоит убедиться в том, чтобы в переменной окружения PATH был указан каталог, содержащий основные утилиты, необходимые для сборки (make и другие).

  1. Синхронизация времени

В некоторых заголовках HTTP протокола указывается время. Поэтому необходимо, чтобы в системе присутствовало средство синхронизации времени. Обычно для этих целей используются программы ntpdate или xntpd, основанные на сетевом протоколе синхронизации времени (Network Time Protocol - NTP).

Загрузка дистрибутива

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

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

Скачав и распаковав дистрибутив сервера Apache 2.0, необходимо сконфигурировать свою версию сборки перед последующей установкой.

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

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

./configure –help.

Наиболее интересными из них являются следующие:

  • --prefix=/путь_к_директории − задает путь инсталляции сервера Apache.

  • --enable-имя_модуля − включение модуля не входящего в состав сборки по умолчанию

  • --disable-имя_модуля − исключение модуля входящего в состав сборки по умолчанию

  • --with-module=тип-модуля:имя-файла − добавление внешнего модуля, не входящего в комплект поставки, ищется в каталоге modules/тип-модуля

Ключи для скрипта ./configure, влияющие на его выполнение:

-C

--config-cache

псевдоним для --cache-file=config.cache

--cache-file=FILE

результаты тестирования скрипта будут сохраняться в файл FILE

эта опция отключена по умолчанию

-h

--help [short|recursive]

вывод справки и выход

с аргументом short будет отображаться справка только выбранного пакета

с аргументом recursive будет показана краткая справка для всех пакетов, включенных в дистрибутив

-n

--no-create

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

-q

--quiet

не выводит checking ... сообщения в процессе настройки

--srcdir=DIR

Определяет каталог DIR как источник файлов установки

по умолчанию это каталог, где производиться настройка, или родительский

--silent

тоже что и --quiet

-V

--version

показывает информацию об версии, авторских правах а затем завершается

Для того чтобы скомпилировать модули как динамически подключаемые объекты (DSO), т.е. они могут быть загружены и выгружены из сервера во время его работы, требуется использовать параметр shared для опции --enable-имя_модуля следующим образом:

--enable-[module]=shared (требуется наличие модуля so).

Использовать данные опции следует с осторожностью, так как конфигурационный скрипт не предупреждает в том случае, если модуля, который указан, нет; он просто проигнорирует соответствующую опцию. Поэтому наличие модулей следует проверить заранее в папке modules.

Опция --enable-layout=LAYOUT производит настройку дерева каталогов для установки сервера в соответсвии с шаблоном LAYOUT, что позволяет отдельно указать места для каждого типа файла в пределах директории установки сервера Apache.

Файл config.layout содержит несколько шаблонов конфигураций. Также можно создавать свои собственные конфигурации следуя примерам. Различные схемы в этом файле сгруппированы в блоки по именам <Layout FOO>...</Layout>, где вместо FOO подставляется имя. По умолчанию используется макет Apache .

Ниже представлены параметры конфигурационного скрипта для моей сборки сервера:

./configure --prefix=/opt/apache2 \

--with-mpm=prefork \

--disable-imagemap \

--disable-userdir \

--enable-proxy \

--enable-proxy-http \

--enable-proxy-ftp \

--enable-auth-digest=shared \

--enable-charset-lite \

--enable-expires \

--enable-info \

--enable-rewrite=shared \

--enable-usertrack \

--enable-so

Мною был выбран тип MPM-модуля prefork, как наиболее простой и стабильный в работе. Впоследствии во время эксплуатации сервера настройки MPM можно будет изменять, подбирая наиболее эффективные при текущей нагрузке на сервере.

Также в сборку были включены дополнительные модули для обеспечения прокси: mod_proxy_http, mod_proxy_ftp, модуль обеспечения динамического подключения модулей: mod_so, модуль выдающий информацию о сервере: mob_info, модуль для отслеживания клиентов с помощью куки: mod_usertrack, модуль управляющий содержимым заголовков: mod_expires управляющий содержимым заголовками и модуль mod_charset_lite для перекодировки документов из кодировки хранения в кодировку клиента. В целях повышения безопасности от внешнего вмешательства из сборки были исключены модуль mod_userdir, позволяющий создавать отдельные каталоги для каждого пользователя, и модуль mod_imagemap, отвечающий за поддержку карт изображений.