本文档说明了如何在Novell NetWare 6.0及更高版本下安装,配置和运行Apache 2.0。如果您发现任何错误,或希望以其他方式做出贡献,请使用我们的 错误报告页面。
没有提供错误报告页面和dev-httpd邮件列表 来回答有关配置或运行Apache的问题。在提交错误报告或请求之前,请先查阅本文档,“ 常见问题”页面和其他相关文档主题。如果仍然有疑问或问题,请将其发布到 novell.devsup.webserver新闻组,在该新闻组中,许多Apache用户非常愿意回答有关在NetWare上使用Apache的新问题和晦涩难懂的问题。
本文档的大部分内容假设您是从二进制发行版中安装Apache的。如果要自己编译Apache(可能是为了帮助开发或跟踪错误),请参阅下面的“ 为NetWare编译Apache ”部分。
Apache 2.0设计为在NetWare 6.0 Service Pack 3和更高版本上运行。如果您运行的Service Pack低于SP3,则必须安装最新的 NetWare C库(LibC)。
NetWare服务包可在此处获得。
只要安装了最新的Service Pack或最新版本的NetWare C for Libraries(LibC),NetWare的Apache 2.0也可以在NetWare 5.1环境中运行。 警告:在此环境中尚未针对Apache 2.0 for NetWare进行测试。
可以在http://www.apache.org/的Apache Web服务器上找到有关Apache最新版本的信息。这将列出当前版本,任何最新的alpha或beta测试版本,以及镜像Web和匿名ftp站点的详细信息。可以从此处下载适用于NetWare的Apache 2.0最新版本的二进制版本 。
当前没有用于NetWare的Apache安装程序。如果要从源代码构建NetWare的Apache 2.0,则需要将文件手动复制到服务器上。
请按照以下步骤从二进制下载文件中在NetWare上安装Apache(假设您将安装到
sys:/apache2
):
SYS:
(可以安装到任何卷)httpd.conf
文件设置ServerRoot
以及ServerName
所有文件路径值以反映正确的服务器设置SYS:/APACHE2
到搜索路径,例如:
SEARCH ADD SYS:\APACHE2
请按照以下步骤从您自己的构建源在NetWare上手动安装Apache(假设您将安装到
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
。
在构建过程中,在makefile命令行中添加关键字“ install”将在子目录下自动生成一个完整的分发包
DIST
。通过简单地将makfiles生成的发行版复制到NetWare卷的根目录来安装Apache(请参阅下面的为NetWare编译Apache)。
要启动Apache,只需apache
在控制台上键入。这将在操作系统地址空间中加载apache。如果您希望在受保护的地址空间中加载Apache,则可以使用load语句指定地址空间,如下所示:
load address space = apache2 apache2
这会将Apache加载到名为apache2的地址空间中。通过将每个实例加载到其自己的受保护地址空间中,可以在NetWare上同时运行多个Apache实例。
启动Apache之后,它将监听端口80(除非您Listen
在配置文件中更改了指令)。要连接到服务器并访问默认页面,请启动浏览器并输入服务器的名称或地址。这应该以欢迎页面和指向Apache手册的链接作为响应。如果没有任何反应或出现错误,请在
目录中查找
error_log
文件logs
。
基本安装成功后,您应该通过编辑conf
目录中的文件来正确配置它
。
要卸载在OS地址空间中运行的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
。使用-V
开关调用Apache 将显示标记为的该值SERVER_CONFIG_FILE
。然后,Apache将ServerRoot
通过尝试以下顺序来确定其顺序:
ServerRoot
通过-C
开关的指令
。-d
命令行上开关。编译到服务器中的服务器根目录通常是sys:/apache2
。用-V
开关调用apache 将显示标记为的这个值
HTTPD_ROOT
。
适用于NetWare的Apache 2.0包含一组命令行指令,可用于修改或显示有关Web服务器正在运行的实例的信息。这些指令仅在Apache运行时可用。这些指令中的每一个都必须以关键字开头APACHE2
。
默认情况下,这些指令是针对在OS地址空间中运行的Apache实例发出的。要针对在受保护的地址空间中运行的特定实例发出指令,请包括-p参数以及地址空间的名称。有关更多信息,请在命令行上键入“ apache2 Help”。
通过读取通常存储在conf
目录中的配置文件来配置Apache 。这些与用于配置Unix版本的文件相同,但是在NetWare上有一些针对Apache的不同指令。有关所有可用指令,请参阅Apache模块文档。
Apache for NetWare的主要区别是:
因为Apache for 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 for NetWare能够在运行时加载模块,而无需重新编译服务器。如果Apache正常编译,它将在\Apache2\modules
目录中安装许多可选模块。要激活这些或其他模块,LoadModule
必须使用指令。例如,要激活状态模块,请使用以下命令:
LoadModule status_module modules/status.nlm
还提供了有关创建可加载模块的信息。
CGIMapExtension
-该指令将CGI文件扩展名映射到脚本解释器。SecureListen
-为指定的端口启用SSL加密。NWSSLTrustedCerts
-添加用于创建到代理服务器的安全连接的受信任证书。NWSSLUpgradeable
-允许将在指定地址/端口上创建的连接升级为SSL连接。编译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
调用makefile文件时可以通过包含关键字来构建完整的发行版
。
要为NetWare构建Apache 2.0,需要以下开发工具:
awk.exe
。NOVELLLIBC
为C SDK的NetWare库的位置,例如:
Set NOVELLLIBC=c:\novell\ndk\libc
METROWERKS
您安装Metrowerks CodeWarrior编译器的位置,例如:
Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior
C:\Program
Files\Metrowerks\CodeWarrior
,则无需进行设置。LDAPSDK
您安装C的LDAP库的位置,例如:
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
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
并通过运行“ gmake -f nwgnumakefile
” 构建Apache 。您可以通过在命令中添加安装参数来创建分发目录,例如:
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
与install相同,但还会在目标目录中创建
\lib
and \include
目录,并复制标头和导入文件。
gmake -f nwgnumakefile clean
根据是否已定义,从\release.o
或\debug.o
构建区域
清除所有目标文件和二进制文件DEBUG
。
gmake -f nwgnumakefile clobber_all
与clean相同,如果存在分发目录,则将其删除。
EXPERIMENTAL
:
Set EXPERIMENTAL=1
USE_STDSOCKETS
:
Set USE_STDSOCKETS=1
默认情况下,Apache for NetWare使用内置模块
mod_nw_ssl
提供SSL服务。此模块仅使NetWare OS中实现的本机SSL服务能够处理给定端口的所有加密。或者,也可以以与其他平台相同的方式使用mod_ssl。
在可以为NetWare平台构建mod_ssl之前,必须提供OpenSSL库。这可以通过以下步骤完成:
NetWare/set_env.bat
并修改任何工具和实用程序路径,以便它们与您的构建环境相对应。
Netware\set_env netware-libc
Netware\build netware-libc
Netware\build netware-libc nw-nasm enable-mdc2 enable-md5
OSSLSDK
openssl源代码目录根目录的完整路径,并将WITH_MOD_SSL设置为1。
Set OSSLSDK=d:\openssl-0.9.8x
Set WITH_MOD_SSL=1