Использование Apache с Novell NetWare
Этот документ объясняет, как установить, настроить и запустить Apache 2.0 под Novell NetWare 6.0 и выше. Если вы обнаружите какие-либо ошибки или хотите внести вклад другими способами, пожалуйста, воспользуйтесь нашей страницей отчета об ошибках.
Страница отчета об ошибках и почтовая рассылка dev-httpd предназначены не для ответа на вопросы о конфигурации или запуске Apache. Перед отправкой отчета об ошибке или запроса, пожалуйста, сначала проконсультируйтесь с этим документом, страницей часто задаваемых вопросов и другими соответствующими темами документации. Если у вас все еще остались вопросы или проблемы, опубликуйте их в новостной группе novell.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
В настоящее время для NetWare нет программы установки Apache. Если вы собираете Apache 2.0 для NetWare из исходного кода, вам нужно будет скопировать файлы на сервер вручную.
Выполните следующие шаги для установки Apache на NetWare из двоичного загружаемого файла (предполагается, что вы установите на sys:/apache2) :
- Разархивируйте двоичный загружаемый файл в корень тома
SYS:(может быть установлен на любой том) - Отредактируйте файл
httpd.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, просто скопировав созданный дистрибутив из каталога makefile в корень тома NetWare (см.: Компиляция Apache для NetWare ниже).
Запуск Apache для NetWare
Чтобы запустить Apache, просто введите apache в консоли. Это загрузит Apache в адресное пространство ОС. Если вы предпочитаете загружать Apache в защищенное адресное пространство, вы можете указать адресное пространство в команде загрузки следующим образом:
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/httpd.conf. Вызов Apache с параметром -V отобразит это значение с меткой SERVER_CONFIG_FILE. Apache затем определит свой ServerRoot, попытавшись выполнить следующие действия в этом порядке:
- Директива
ServerRootчерез параметр-C. - Параметр
-dв командной строке. - Текущий рабочий каталог
- Корневой каталог сервера, скомпилированный в сервере.
Корневой каталог сервера, скомпилированный в сервере, обычно sys:/apache2. Вызов Apache с параметром -V отобразит это значение с меткой HTTPD_ROOT.
Apache 2.0 для NetWare включает набор командных директив, которые могут использоваться для изменения или отображения информации о работающем экземпляре веб-сервера. Эти директивы доступны только во время работы Apache. Каждая из этих директив должна предваряться ключевым словом APACHE2.
- RESTART
- Инструктирует Apache завершить все работающие потоки-обработчики по мере их завершения, повторно прочитать файл конфигурации и перезапустить каждый поток-обработчик на основе новой конфигурации.
- VERSION
- Отображает информацию о версии текущего работающего экземпляра Apache.
- MODULES
- Отображает список загруженных модулей, как встроенных, так и внешних.
- DIRECTIVES
- Отображает список всех доступных директив.
- SETTINGS
- Включает или выключает отображение состояния потоков в консоли. При включении состояние каждого работающего потока отображается на экране консоли Apache.
- SHUTDOWN
- Завершает работу экземпляра веб-сервера Apache.
- HELP
- Описывает каждую из директив выполнения.
По умолчанию эти директивы выполняются для экземпляра Apache, работающего в адресном пространстве ОС. Чтобы выполнить директиву для определенного экземпляра, работающего в защищенном адресном пространстве, включите параметр -p вместе с именем адресного пространства. Для получения дополнительной информации введите "apache2 Help" в командной строке.
Настройка 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в расположение SDK NetWare Libraries for C, например:Set NOVELLLIBC=c:\novell\ndk\libc
- Установите переменную среды
METROWERKSв расположение, где вы установили компилятор Metrowerks CodeWarrior, например:Если вы установили его по умолчанию, это не нужно.Set METROWERKS=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
Дополнительные параметры make
-
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То же, что и install, но также создаёт каталоги
\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 выполните следующие скрипты: По соображениям производительности вы должны включить компиляцию с кодом ASM. Скачайте NASM с сайта SF. Затем настройте OpenSSL для использования кода ASM:
Netware\set_env netware-libc Netware\build netware-libc
Предупреждение: не используйте ассемблер CodeWarrior — он создаёт некорректный код!Netware\build netware-libc nw-nasm enable-mdc2 enable-md5
- Перед сборкой Apache установите переменную среды
OSSLSDKв полный путь к корневому каталогу исходного кода OpenSSL и установите WITH_MOD_SSL в 1.Set OSSLSDK=d:\openssl-0.9.8x Set WITH_MOD_SSL=1
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/platform/netware.html