Пункт 60. Использование Apache с Novell NetWare
В этом документе объясняется, как установить, настроить и запустить Apache 2.0 в Novell NetWare 6.0 и выше. Если вы обнаружите какие-либо ошибки или хотите внести свой вклад другим способом, воспользуйтесь нашей страницей сообщений об ошибках.
Страница сообщений об ошибках и список рассылки dev-httpd
не предназначены для ответов на вопросы о настройке или запуске Apache. Перед отправкой отчета об ошибке или запроса сначала ознакомьтесь с этим документом, страницей часто задаваемых вопросов и другими соответствующими разделами документации. Если у вас остались вопросы или проблемы, опубликуйте их в группе новостей novel.devsup.webserver, где многие пользователи Apache с удовольствием ответят на новые и малоизвестные вопросы об использовании Apache в NetWare.
Большая часть этого документа предполагает, что вы устанавливаете Apache из бинарного дистрибутива. Если вы хотите скомпилировать Apache самостоятельно (возможно, чтобы помочь в разработке или отследить ошибки), см. раздел о компиляции Apache для NetWare ниже.
Требования
Apache 2.0 предназначен для работы на NetWare 6.0 с пакетом обновления 3 и выше. Если вы используете пакет обновлений ниже SP3, вы должны установить последние библиотеки NetWare для C (LibC).
Пакеты обновлений NetWare доступны здесь.
Apache 2.0 для NetWare также можно запускать в среде NetWare 5.1, если установлен последний пакет обновлений или последняя версия библиотек NetWare для C (LibC). ПРЕДУПРЕЖДЕНИЕ. Apache 2.0 для NetWare не предназначался и не тестировался в этой среде.
Загрузка Apache для NetWare
Информацию о последней версии Apache можно найти на веб-сервере Apache по адресу http://www.apache.org/. В нем будет указана текущая версия, любые более поздние альфа- или бета-тестовые версии, а также сведения о зеркальных веб-сайтах и анонимных ftp-сайтах. Бинарные сборки последних выпусков Apache 2.0 для NetWare можно загрузить отсюда.
Установка Apache для NetWare
В настоящее время нет программы установки Apache для NetWare. Если вы собираете Apache 2.0 для NetWare из исходного кода, вам потребуется вручную скопировать файлы на сервер.
Выполните следующие шаги, чтобы установить Apache на NetWare из загруженного двоичного файла (при условии, что вы будете устанавливать в
sys:/apache2
):
- Разархивируйте бинарный загружаемый файл в корень тома
SYS:
(можно установить на любой том)
- Отредактируйте
apache2.conf
параметр файла ServerRoot
, а ServerName
также любые значения пути к файлу, чтобы они отражали правильные параметры сервера.
- Добавьте
SYS:/APACHE2
в путь поиска, например:
SEARCH ADD SYS:\APACHE2
Выполните следующие шаги, чтобы установить Apache на NetWare вручную из вашего собственного источника сборки (при условии, что вы будете устанавливать в
sys:/apache2
):
- Создайте каталог с именем
Apache2
на томе NetWare
- Скопируйте
APACHE2.NLM
, APRLIB.NLM
в SYS:/APACHE2
- Создайте каталог под
SYS:/APACHE2
названием BIN
- Копировать
HTDIGEST.NLM
, HTPASSWD.NLM
,
HTDBM.NLM
, LOGRES.NLM
, ROTLOGS.NLM
в SYS:/APACHE2/BIN
- Создайте каталог под
SYS:/APACHE2
названием CONF
- Скопируйте
HTTPD-STD.CONF
файл в
SYS:/APACHE2/CONF
каталог и переименуйте в
HTTPD.CONF
- Скопируйте файлы
MIME.TYPES
и в каталог CHARSET.CONV
MAGIC
SYS:/APACHE2/CONF
- Скопируйте все файлы и подкаталоги
\HTTPD-2.0\DOCS\ICONS
в SYS:/APACHE2/ICONS
- Скопируйте все файлы и подкаталоги
\HTTPD-2.0\DOCS\MANUAL
в SYS:/APACHE2/MANUAL
- Скопируйте все файлы и подкаталоги
\HTTPD-2.0\DOCS\ERROR
в SYS:/APACHE2/ERROR
- Скопируйте все файлы и подкаталоги
\HTTPD-2.0\DOCS\DOCROOT
в SYS:/APACHE2/HTDOCS
- Создайте каталог
SYS:/APACHE2/LOGS
на сервере
- Создайте каталог
SYS:/APACHE2/CGI-BIN
на сервере
- Создайте каталог
SYS:/APACHE2/MODULES
и скопируйте в него все модули nlm modules
.
- Отредактируйте
HTTPD.CONF
файл, выполнив поиск всех
@@Value@@
маркеров и заменив их соответствующей настройкой.
- Добавьте
SYS:/APACHE2
в путь поиска, например:
SEARCH ADD SYS:\APACHE2
Apache можно установить на другие тома, кроме SYS
тома по умолчанию.
В процессе сборки добавление ключевого слова install в командную строку makefile автоматически создаст полный пакет дистрибутива в подкаталоге
DIST
. Установите Apache, просто скопировав дистрибутив, созданный makfiles, в корень тома NetWare (см.: Компиляция Apache для NetWare ниже).
Запуск Apache для NetWare
Чтобы запустить Apache, просто введите apache
в консоли. Это загрузит apache в адресное пространство ОС. Если вы предпочитаете загружать Apache в защищенном адресном пространстве, вы можете указать адресное пространство с оператором load следующим образом:
load address space = apache2 apache2
Это загрузит Apache в адресное пространство с именем apache2. Одновременный запуск нескольких экземпляров Apache в NetWare возможен за счет загрузки каждого экземпляра в собственное защищенное адресное пространство.
После запуска Apache он будет прослушивать порт 80 (если вы не изменили директиву Listen
в файлах конфигурации). Чтобы подключиться к серверу и получить доступ к странице по умолчанию, запустите браузер и введите имя или адрес сервера. Это должно ответить приветственной страницей и ссылкой на руководство Apache. Если ничего не происходит или вы получаете сообщение об ошибке, посмотрите файл
error_log
в logs
каталоге.
Как только ваша базовая установка заработает, вы должны правильно настроить ее, отредактировав файлы в
conf
каталоге.
Чтобы выгрузить Apache, работающий в адресном пространстве ОС, достаточно ввести в консоли следующее:
unload apache2
или
apache2 shutdown
Если apache работает в защищенном адресном пространстве, укажите адресное пространство в операторе выгрузки:
unload address space = apache2 apache2
При работе с Apache важно знать, как он найдет файлы конфигурации. Вы можете указать файл конфигурации в командной строке двумя способами:
-
-f
указывает путь к определенному файлу конфигурации
apache2 -f "vol:/my server/conf/my.conf"
apache -f test/test.conf
ServerRoot
В этих случаях в конфигурационном файле должны быть установлены соответствующие параметры .
Если вы не укажете имя файла конфигурации с помощью -f
, Apache будет использовать имя файла, скомпилированного на сервере, обычно
conf/apache2.conf
. При вызове Apache с -V
переключателем это значение будет помечено как SERVER_CONFIG_FILE
. Затем Apache определит его ServerRoot
, выполнив следующие действия в указанном порядке:
- Директива
ServerRoot
через
-C
переключатель.
- Переключатель
-d
в командной строке.
- Текущий рабочий каталог
- Корень сервера скомпилирован в файл server.
Корень сервера, скомпилированный в сервер, обычно имеет расширение sys:/apache2
. вызов apache с -V
переключателем отобразит это значение, помеченное как
HTTPD_ROOT
.
Apache 2.0 для NetWare включает набор директив командной строки, которые можно использовать для изменения или отображения информации о работающем экземпляре веб-сервера. Эти директивы доступны только во время работы Apache. Каждой из этих директив должно предшествовать ключевое слово APACHE2
.
- ПЕРЕЗАПУСК
- Указывает Apache завершить все запущенные рабочие потоки по мере их бездействия, перечитать файл конфигурации и перезапустить каждый рабочий поток на основе новой конфигурации.
- ВЕРСИЯ
- Отображает информацию о версии текущего запущенного экземпляра Apache.
- МОДУЛИ
- Отображает список загруженных модулей как встроенных, так и внешних.
- ДИРЕКТИВЫ
- Отображает список всех доступных директив.
- НАСТРОЙКИ
- Включает или отключает отображение состояния потока на консоли. Если этот параметр включен, состояние каждого запущенного потока отображается на экране консоли Apache.
- НЕИСПРАВНОСТЬ
- Завершает работающий экземпляр веб-сервера Apache.
- ПОМОЩЬ
- Описывает каждую из директив среды выполнения.
По умолчанию эти директивы выдаются для экземпляра Apache, работающего в адресном пространстве ОС. Чтобы выдать директиву для конкретного экземпляра, работающего в защищенном адресном пространстве, включите параметр -p вместе с именем адресного пространства. Для получения дополнительной информации введите «Справка apache2» в командной строке.
Настройка Apache для NetWare
Apache настраивается путем чтения файлов конфигурации, обычно хранящихся в conf
каталоге. Это те же самые файлы, которые используются для настройки версии Unix, но есть несколько других директив для Apache в NetWare. Все доступные директивы см. в документации модуля Apache.
Основные отличия Apache для NetWare:
-
Поскольку Apache для NetWare является многопоточным, он не использует отдельный процесс для каждого запроса, как это делает Apache в некоторых реализациях Unix. Вместо этого выполняются только потоки: родительский поток и несколько дочерних или рабочих потоков, обрабатывающих запросы.
Следовательно, директивы управления «процессом» различны:
MaxConnectionsPerChild
- Подобно директиве Unix, это определяет, сколько соединений рабочий поток будет обслуживать перед выходом. Рекомендуемое значение по умолчанию
MaxConnectionsPerChild 0
заставляет поток продолжать обслуживание запроса на неопределенный срок. В NetWare рекомендуется, если нет особой причины, чтобы эта директива всегда оставалась установленной на 0
.
StartThreads
- Эта директива сообщает серверу, сколько потоков он должен запустить изначально. Рекомендуемое значение по умолчанию StartThreads 50
.
MinSpareThreads
- Эта директива предписывает серверу создавать дополнительные рабочие потоки, если количество бездействующих потоков когда-либо падает ниже этого значения. Рекомендуемое значение по умолчанию MinSpareThreads 10
.
MaxSpareThreads
- Эта директива предписывает серверу начинать завершать рабочие потоки, если количество простаивающих потоков когда-либо превышает это значение. Рекомендуемое значение по умолчанию MaxSpareThreads 100
.
MaxThreads
- Эта директива ограничивает общее количество рабочих потоков до максимального значения. Рекомендуемое значение по умолчанию ThreadsPerChild 250
.
ThreadStackSize
- Эта директива сообщает серверу, какой размер стека использовать для отдельного рабочего потока. Рекомендуемое значение по умолчанию ThreadStackSize 65536
.
-
Директивы, которые принимают имена файлов в качестве аргументов, должны использовать имена файлов NetWare вместо имен Unix. Однако, поскольку Apache внутри использует имена в стиле Unix, необходимо использовать прямую косую черту, а не обратную косую черту. Рекомендуется, чтобы все пути к корневым файлам начинались с имени тома. Если его не указать, Apache примет
SYS:
объем, который может быть неправильным.
-
Apache для NetWare имеет возможность загружать модули во время выполнения без перекомпиляции сервера. Если Apache скомпилирован нормально, он установит в каталог несколько дополнительных модулей \Apache2\modules
. Для активации тех или иных модулей LoadModule
необходимо использовать директиву. Например, чтобы активировать модуль состояния, используйте следующее:
LoadModule status_module modules/status.nlm
Также доступна информация о создании загружаемых модулей.
Дополнительные специальные директивы NetWare:
-
CGIMapExtension
- Эта директива сопоставляет расширение файла CGI с интерпретатором сценария.
-
SecureListen
- Включает шифрование SSL для указанного порта.
-
NWSSLTrustedCerts
- Добавляет доверенные сертификаты, которые используются для создания безопасных подключений к прокси-серверам.
-
NWSSLUpgradeable
- Разрешить обновление соединения, созданного по указанному адресу/порту, до соединения SSL.
Компиляция Apache для NetWare
Для компиляции Apache требуется MetroWerks CodeWarrior 6.x или выше. После сборки Apache его можно установить в корень любого тома NetWare. По умолчанию это sys:/Apache2
каталог.
Перед запуском сервера необходимо заполнить conf
каталог. Скопируйте файл HTTPD-STD.CONF
из каталога дистрибутива
conf
и переименуйте его в HTTPD.CONF
. Отредактируйте HTTPD.CONF
файл, выполнив поиск всех @@Value@@
маркеров и заменив их соответствующей настройкой. Также скопируйте файлы conf/magic
и . conf/mime.types
В качестве альтернативы можно собрать полный дистрибутив, включив ключевое слово
install
при вызове make-файлов.
Требования:
Для сборки Apache 2.0 для NetWare требуются следующие инструменты разработки:
- Metrowerks CodeWarrior 6.0 или выше с NetWare PDK 3.0 или выше.
- Библиотеки NetWare для C (LibC)
- Библиотеки LDAP для C
- Исходный код библиотеки сжатия ZLIB
- Утилита AWK (awk, gawk или аналогичная). AWK можно загрузить с http://developer.novell.com/ndk/apache.htm. Утилита должна быть найдена в вашем пути Windows и должна называться
awk.exe
.
- Для сборки с помощью make-файлов вам потребуется GNU make версии 3.78.1 (GMake), доступный по адресу http://developer.novell.com/ndk/apache.htm.
Сборка Apache с использованием make-файлов NetWare:
- Задайте в переменной среды
NOVELLLIBC
расположение библиотек NetWare для C SDK, например:
Set NOVELLLIBC=c:\novell\ndk\libc
- Задайте для переменной среды
METROWERKS
место, где вы установили компилятор Metrowerks CodeWarrior, например:
Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior
Если вы установили в расположение по умолчанию C:\Program
Files\Metrowerks\CodeWarrior
, вам не нужно устанавливать это.
- Задайте для переменной среды
LDAPSDK
место, где вы установили библиотеки LDAP для C, например:
Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc
- Установите переменную среды
ZLIBSDK
в место, где вы установили исходный код библиотеки ZLib, например:
Set ZLIBSDK=D:\NOVELL\zlib
- Задайте для переменной среды
PCRESDK
место, где вы установили исходный код библиотеки PCRE, например:
Set PCRESDK=D:\NOVELL\pcre
- Задайте для переменной среды
AP_WORK
полный путь к httpd
каталогу исходного кода.
Set AP_WORK=D:\httpd-2.0.x
- Задайте для переменной среды
APR_WORK
полный путь к apr
каталогу исходного кода. Как правило \httpd\srclib\apr
, проект APR может находиться за пределами структуры каталогов httpd.
Set APR_WORK=D:\apr-1.x.x
- Задайте для переменной среды
APU_WORK
полный путь к apr-util
каталогу исходного кода. Как правило \httpd\srclib\apr-util
, проект APR-UTIL может находиться за пределами структуры каталогов httpd.
Set APU_WORK=D:\apr-util-1.x.x
- Убедитесь, что путь к утилите AWK и утилите GNU make (
gmake.exe
) включен в системную
PATH
переменную среды.
- Загрузите исходный код и разархивируйте его в соответствующий каталог на вашей рабочей станции.
- Измените каталог на
\httpd-2.0
и соберите утилиты предварительной сборки, запустив " gmake -f nwgnumakefile prebuild
". Эта цель создаст каталог \httpd-2.0\nwprebuild
и скопирует в него все утилиты, необходимые для выполнения следующих шагов сборки.
- Скопируйте файлы
\httpd-2.0\nwprebuild\GENCHARS.nlm
и
\httpd-2.0\nwprebuild\DFTABLES.nlm
на SYS:
том сервера NetWare и запустите их с помощью следующих команд:
SYS:\genchars > sys:\test_char.h
SYS:\dftables sys:\chartables.c
- Скопируйте файлы
test_char.h
и chartables.c
в каталог \httpd-2.0\os\netware
на машине сборки.
- Измените каталог на
\httpd-2.0
и соберите Apache, запустив " gmake -f nwgnumakefile
". Вы можете создать каталог дистрибутива, добавив в команду параметр установки, например:
gmake -f nwgnumakefile install
Дополнительные варианты изготовления
-
gmake -f nwgnumakefile
Создает выпускные версии всех двоичных файлов и копирует их в \release
целевой каталог.
-
gmake -f nwgnumakefile DEBUG=1
Создает отладочные версии всех двоичных файлов и копирует их в \debug
целевой каталог.
-
gmake -f nwgnumakefile install
Создает полный дистрибутив Apache с двоичными файлами, документами и дополнительными файлами поддержки в
\dist\Apache2
каталоге.
-
gmake -f nwgnumakefile prebuild
Собирает все предварительно созданные утилиты и копирует их в \nwprebuild
каталог.
-
gmake -f nwgnumakefile installdev
То же, что и установка, но также создает
каталог \lib
и \include
в целевом каталоге и копирует заголовки и файлы импорта.
-
gmake -f nwgnumakefile clean
Удаляет все объектные файлы и двоичные файлы из областей сборки \release.o
или \debug.o
в зависимости от того,
DEBUG
были ли они определены.
-
gmake -f nwgnumakefile clobber_all
То же, что и clean, а также удаляет каталог дистрибутива, если он существует.
Дополнительные параметры переменных среды
- Чтобы собрать все экспериментальные модули, установите переменную среды
EXPERIMENTAL
:
Set EXPERIMENTAL=1
- Чтобы собрать Apache с использованием стандартных сокетов в стиле BSD, а не Winsock, установите переменную среды
USE_STDSOCKETS
:
Set USE_STDSOCKETS=1
Сборка mod_ssl для платформы NetWare
По умолчанию Apache для NetWare использует встроенный модуль
mod_nw_ssl
для предоставления услуг SSL. Этот модуль просто позволяет собственным службам SSL, реализованным в ОС NetWare, обрабатывать все операции шифрования для данного порта. Кроме того, mod_ssl также можно использовать так же, как и на других платформах.
Перед сборкой mod_ssl для платформы NetWare необходимо предоставить библиотеки OpenSSL. Это можно сделать с помощью следующих шагов:
- Загрузите исходный код последней версии OpenSSL 0.9.8 со страницы исходного кода OpenSSL (более старые версии 0.9.7 требуют исправления, поэтому их использование не рекомендуется).
- Отредактируйте файл
NetWare/set_env.bat
и измените пути к любым инструментам и утилитам, чтобы они соответствовали вашей среде сборки.
- Из корня исходного каталога OpenSSL запустите следующие скрипты:
Netware\set_env netware-libc
Netware\build netware-libc
Из соображений производительности вы должны включить сборку с кодом ASM. Загрузите NASM с сайта SF. Затем настройте OpenSSL для использования кода ASM:
Netware\build netware-libc nw-nasm enable-mdc2 enable-md5
Предупреждение: не используйте ассемблер CodeWarrior - он создает неработающий код!
- Перед сборкой Apache установите для переменной среды
OSSLSDK
полный путь к корню каталога исходного кода openssl и установите WITH_MOD_SSL на 1.
Set OSSLSDK=d:\openssl-0.9.8x
Set WITH_MOD_SSL=1