Использование 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
В настоящее время программы установки Apache для NetWare нет. Если вы собираете Apache 2.0 для NetWare из исходного кода, файлы необходимо вручную скопировать на сервер.
Выполните следующие действия, чтобы установить Apache в NetWare из бинарного дистрибутива (предполагается, что установка будет выполнена в sys:/apache2):
- Распакуйте загруженный бинарный файл в корень тома
SYS:(можно установить на любой том) - Измените файл
httpd.conf, задавServerRootиServerName, а также скорректировав все пути к файлам в соответствии с настройками вашего сервера - Добавьте
SYS:/APACHE2в путь поиска, например:SEARCH ADD SYS:\APACHE2
Выполните следующие действия, чтобы вручную установить Apache в NetWare из собственной сборки исходного кода (предполагается, что установка будет выполнена в sys:/apache2):
- Создайте на томе NetWare каталог с именем
Apache2 - Скопируйте
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, просто скопируйте дистрибутив, созданный makefiles, в корень тома NetWare (см. раздел Компиляция Apache для NetWare ниже).
Запуск Apache для NetWare
Чтобы запустить Apache, просто введите apache в консоли. Apache загрузится в адресное пространство ОС. Если вы предпочитаете загружать Apache в защищённое адресное пространство, укажите его в операторе load следующим образом:
load address space = apache2 apache2
Apache загрузится в адресное пространство с именем apache2. В NetWare можно одновременно запускать несколько экземпляров Apache, загрузив каждый из них в собственное защищённое адресное пространство.
После запуска Apache будет прослушивать порт 80 (если только вы не изменили директиву Listen в файлах конфигурации). Чтобы подключиться к серверу и открыть страницу по умолчанию, запустите браузер и введите имя или адрес сервера. Должна отобразиться приветственная страница со ссылкой на руководство Apache. Если ничего не происходит или появляется ошибка, проверьте файл error_log в каталоге logs.
После успешного завершения базовой установки настройте Apache, отредактировав файлы в каталоге conf.
Чтобы выгрузить Apache, работающий в адресном пространстве ОС, введите в консоли следующую команду:
unload apache2
или
apache2 shutdown
Если Apache работает в защищённом адресном пространстве, укажите это адресное пространство в операторе unload:
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 при запуске makefiles.
Требования:
Для сборки 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. - Для сборки с помощью makefiles потребуется GNU make версии 3.78.1 (GMake), доступная по адресу http://developer.novell.com/ndk/apache.htm.
Сборка Apache с помощью makefiles для NetWare:
- Задайте переменную среды
NOVELLLIBC, указав расположение SDK библиотек NetWare для C, например: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". Добавив к команде параметр install, можно создать каталог дистрибутива, например: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. Этот модуль лишь включает встроенные в ОС NetWare службы SSL, которые выполняют всё шифрование для заданного порта. Кроме того, 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