<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="../">Version 2.0</a> > <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Using Apache With Novell NetWare</h1>
<p>This document explains how to install, configure and run
- Apache 2.0 under Novell NetWare 5.1 and above. If you find any bugs,
+ Apache 2.0 under Novell NetWare 6.0 and above. If you find any bugs,
or wish to contribute in other ways, please use our
<a href="http://httpd.apache.org/bug_report.html">bug reporting
page.</a></p>
- <p>Apache 2.0 is designed to run on NetWare 5.1 and above.</p>
-
- <p><strong>If running on NetWare 5.1 you must install Service
- Pack 4 or above.</strong></p>
-
- <p><strong>If running on NetWare 6 you must install Service
- Pack 1 or above.</strong></p>
+ <p>Apache 2.0 is designed to run on NetWare 6.0 service pack 3
+ and above. If you are running a service pack less
+ than SP3, you must install the latest
+ <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
+ for C (LibC)</a>.</p>
<p>NetWare service packs are available <a href="http://support.novell.com/misc/patlst.htm#nw">here</a>.</p>
+ <p>Apache 2.0 for NetWare can also be run in a NetWare 5.1 environment
+ as long as the latest service pack or the latest version
+ of the <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
+ for C (LibC)</a> has been installed . <strong>WARNING:</strong> Apache 2.0
+ for NetWare has not been targeted for or tested in this environment.</p>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="down" id="down">Downloading Apache for NetWare</a></h2>
the Apache web server at <a href="http://www.apache.org/">http://www.apache.org/</a>. This
will list the current release, any more recent alpha or
beta-test releases, together with details of mirror web and
- anonymous ftp sites.</p>
+ anonymous ftp sites. Binary builds of the latest releases of
+ Apache 2.0 for NetWare can be downloaded from
+ <a href="http://www.apache.org/dist/httpd/binaries/netware">here</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
- <p>There is no Apache install program for NetWare currently. You
- will need to compile apache and copy the files over to the
- server manually. An install program will be posted at a later
- date.</p>
+ <p>There is no Apache install program for NetWare currently. If you
+ are building Apache 2.0 for NetWare from source, you will need to
+ copy the files over to the server manually.</p>
<p>Follow these steps to install Apache on NetWare from the
binary download (assuming you will install to
<li>Unzip the binary download file to the root of the <code>SYS:</code>
volume (may be installed to any volume)</li>
- <li>Edit the <code>httpd.conf</code> file setting <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> and <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> to reflect your correct server
- settings</li>
+ <li>Edit the <code>httpd.conf</code> file setting <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> and <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> along with any file path values
+ to reflect your correct server settings</li>
<li>Add <code>SYS:/APACHE2</code> to the search path, for example:
<div class="example"><p><code>SEARCH ADD SYS:\APACHE2</code></p></div>
<p>Follow these steps to install Apache on NetWare manually
from your own build source (assuming you will install to
- <code>sys:/apache</code>):</p>
+ <code>sys:/apache2</code>):</p>
<ul>
<li>Create a directory called <code>Apache2</code> on a
NetWare volume</li>
- <li>Copy <code>APACHE2.NLM</code>, <code>APRLIB.NLM</code>,
- <code>HTDIGEST.NLM</code>, <code>HTPASSWD.NLM</code>
+ <li>Copy <code>APACHE2.NLM</code>, <code>APRLIB.NLM</code>
to <code>SYS:/APACHE2</code></li>
+ <li>Create a directory under <code>SYS:/APACHE2</code>
+ called <code>BIN</code></li>
+
+ <li>Copy <code>HTDIGEST.NLM</code>, <code>HTPASSWD.NLM</code>,
+ <code>HTDBM.NLM</code>, <code>LOGRES.NLM</code>, <code>ROTLOGS.NLM</code>
+ to <code>SYS:/APACHE2/BIN</code></li>
+
<li>Create a directory under <code>SYS:/APACHE2</code>
called <code>CONF</code></li>
<code>SYS:/APACHE2/CONF</code> directory and rename to
<code>HTTPD.CONF</code></li>
- <li>Copy the <code>MIME.TYPES</code> and <code>MAGIC</code>
- files to <code>SYS:/APACHE2/CONF</code> directory</li>
+ <li>Copy the <code>MIME.TYPES</code>, <code>CHARSET.CONV</code> and
+ <code>MAGIC</code> files to <code>SYS:/APACHE2/CONF</code> directory</li>
<li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ICONS</code>
to <code>SYS:/APACHE2/ICONS</code></li>
<p>Apache may be installed to other volumes besides the default <code>SYS</code> volume.</p>
+ <p>During the build process, adding the keyword "install" to the makefile command line
+ will automatically produce a complete distribution package under the subdirectory
+ <code>DIST</code>. Install Apache by simply copying the distribution that was produced
+ by the makfiles to the root of a NetWare volume (see: <a href="#comp">Compiling Apache for
+ NetWare</a> below).</p>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="run" id="run">Running Apache for NetWare</a></h2>
load address space = apache2 apache2
</code></p></div>
- <p>This will load Apache into an address space called apache.
+ <p>This will load Apache into an address space called apache2.
Running multiple instances of Apache concurrently on NetWare is
possible by loading each instance into its own protected
address space.</p>
<p>Apache 2.0 for NetWare includes a set of command line directives that can
be used to modify or display information about the running instance of the
- web server. Each of these directives must be preceded by the keyword
- <code>APACHE2</code>:</p>
+ web server. These directives are only available while Apache is running. Each
+ of these directives must be preceded by the keyword <code>APACHE2</code>.</p>
<dl>
<dt>RESTART</dt>
<dt>SETTINGS</dt>
<dd>Enables or disables the thread status display
- on the console. When enabled, a status of the number of running threads
- is displayed along with their status.</dd>
+ on the console. When enabled, the state of each running threads is displayed
+ on the Apache console screen.</dd>
<dt>SHUTDOWN</dt>
<dd>Terminates the running instance of the Apache
web server.</dd>
+
+ <dt>HELP</dt>
+ <dd>Describes each of the runtime directives.</dd>
</dl>
+ <p>By default these directives are issued against the instance of Apache running
+ in the OS address space. To issue a directive against a specific instance running
+ in a protected address space, include the -p parameter along with the name of the
+ address space. For more information type "apache2 Help" on the command line.</p>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="use" id="use">Configuring Apache for NetWare</a></h2>
- <p>Apache is configured by files in the <code>conf</code>
- directory. These are the same as files used to configure the
- Unix version, but there are a few different directives for
+ <p>Apache is configured by reading configuration files usually stored
+ in the <code>conf</code> directory. These are the same as files used
+ to configure the Unix version, but there are a few different directives for
Apache on NetWare. See the <a href="../">Apache
documentation</a> for all the available directives.</p>
<ul>
<li>
<p>Because Apache for NetWare is multithreaded, it does not
- use a separate process for each request, as Apache does in some Unix
+ use a separate process for each request, as Apache does on some Unix
implementations. Instead there are only threads running: a parent
- thread, and a multiple child threads which handle the requests.</p>
+ thread, and multiple child or worker threads which handle the requests.</p>
- <p>So the "process"-management directives are different:</p>
+ <p>Therefore the "process"-management directives are different:</p>
<p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> -
Like the Unix directive, this controls how many requests
</li>
<li>
- <p>The directives that accept filenames as arguments now
- must use NetWare filenames instead of Unix ones. However,
- because Apache uses Unix-style names internally, you must
- use forward slashes, not backslashes. It is recommended that all rooted
- file paths begin with a volume name. If omitted, Apache will
- assume the <code>SYS:</code> volume.</p>
+ <p>The directives that accept filenames as arguments must use
+ NetWare filenames instead of Unix names. However, because Apache
+ uses Unix-style names internally, forward slashes must be used
+ rather than backslashes. It is recommended that all rooted file paths
+ begin with a volume name. If omitted, Apache will assume the
+ <code>SYS:</code> volume which may not be correct.</p>
</li>
<li>
modules in the <code>\Apache2\modules</code> directory.
To activate these, or other modules, the <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> directive
must be used. For example, to active the status module, use
- the following (in addition to the status-activating
- directives in <code>access.conf</code>):</p>
+ the following:</p>
<div class="example"><p><code>
LoadModule status_module modules/status.nlm
- <p>Compiling Apache requires MetroWerks CodeWarrior 6.x or higher to
- be properly installed. Once Apache has been built, it needs to be
- installed on a NetWare volume's root directory. The default is the
- <code>sys:/Apache2</code> directory.</p>
+ <p>Compiling Apache requires MetroWerks CodeWarrior 6.x or higher. Once
+ Apache has been built, it can be installed to the root of any NetWare
+ volume. The default is the <code>sys:/Apache2</code> directory.</p>
<p>Before running the server you must fill out the <code>conf</code>
directory. Copy the file <code>HTTPD-STD.CONF</code> from the distribution
<code>conf</code> directory and rename it to <code>HTTPD.CONF</code>.
Edit the <code>HTTPD.CONF</code> file searching for all <code>@@Value@@</code>
markers and replacing them with the appropriate setting. Copy over
- the <code>conf/magic</code> and <code>conf/mime.types</code> files as well.</p>
+ the <code>conf/magic</code> and <code>conf/mime.types</code> files as well.
+ Alternatively, a complete distribution can be built by including the keyword
+ <code>install</code> when invoking the makefiles.</p>
<h3><a name="comp-req" id="comp-req">Requirements:</a></h3>
<li><a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
for C (LibC)</a></li>
- <li><a href="http://developer.novell.com/ndk/ws2comp.htm">WinSock 2
- Developer Components for NetWare</a></li>
+ <li><a href="http://developer.novell.com/ndk/cldap.htm">LDAP Libraries
+ for C</a></li>
+
+ <li><a href="http://www.gzip.org/zlib/">ZLIB Compression Library source code</a></li>
- <li>To build using either the project file or the make files, requires an
- AWK utility (awk, gawk or similar). AWK can be downloaded from
+ <li>AWK utility (awk, gawk or similar). AWK can be downloaded from
<a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.
The utility must be found in your windows path and must be named <code>awk.exe</code>.</li>
- <h3><a name="comp-metro" id="comp-metro">Building Apache using the Metrowerks Project Files:</a></h3>
-
-
-
- <p>All major pieces of Apache and APR are built using the
- <code>ApacheNW.mcp</code> and <code>LibAprNW.mcp</code> project files.
- This includes modules such as status, info, proxy, etc.</p>
-
- <ul>
- <li>Set the environment variable <code>NovellLibC</code> to the
- location of the NetWare Libraries for C SDK, for example:
- <div class="example"><p><code>Set NovellLibC=c:\novell\ndk\libc</code></p></div>
- </li>
-
- <li>Make sure that the path to the CodeWarrior command line tools
- (<code>MWCCNLM.exe</code>, <code>MWLDNLM.exe</code>) has been
- included in the system's <code>PATH</code> environment variable.</li>
-
- <li>Make sure that the path to the AWK utility has been included in the
- system's <code>PATH</code> environment variable.</li>
-
- <li>Download the source code and unzip to an appropriate directory on
- your workstation.</li>
-
- <li>Change directory to <code>\httpd\srclib\apr\build</code> and run the
- batch file <code>prebuildnw.bat</code>. The batch file will setup the build
- environment for building the APR libraries. It will also run 2 AWK scripts
- that will generate the export files for APR.</li>
-
- <li>Change directory to <code>\httpd\srclib\apr</code> and extract the project
- file <code>LIBAPRNW.mcp</code> from the <code>LIBAPRNW.mcp.zip</code> file.</li>
-
- <li>Open the <code>LIBAPRNW.mcp</code> project file in the Metrowerks IDE.</li>
-
- <li>Select the target "Build Util - Gen URL Delim" and build the target.
- This target will produce the NLM <code>GENURI.nlm</code></li>
-
- <li>Copy the file <code>GENURI.nlm</code> to the <code>SYS:</code> volume
- of a NetWare server and run using the following command:
- <ul>
- <li><code>SYS:\genuri > sys:\uri_delims.h</code></li>
- </ul>
- </li>
-
- <li>Copy the file <code>uri_delims.h</code> to the directory
- <code>\httpd\srclib\apr-util\uri</code> on the build machine.</li>
-
- <li>Select the target "APR Debug NLM" or "APR Release NLM" in the IDE and build.
- This will produce the file <code>APRLIB.nlm</code>.
- <ul>
- <li>[Optional] Select any of the LIB targets to produce a
- statically linkable libraries.</li>
- </ul>
- </li>
-
- <li>Change directory to <code>\httpd\build</code> and run the batch file
- <code>prebuildnw.bat</code>. This batch file will setup the build environment
- for building the <code>APACHE.nlm</code>. It will also run several AWK scripts
- that will generate the export files for APACHE.</li>
-
- <li>Change directory to <code>\http</code> and extract the project file
- <code>ApacheNW.mcp</code> from the <code>ApacheNW.mcp.zip</code> file.</li>
-
- <li>Open the <code>ApacheNW.mcp</code> project file in the Metrowerks IDE.</li>
-
- <li>Select the target "Build Utility - DFTables" and build the target.</li>
-
- <li>Select the target "Build Util - Gen Test Chars" and build the target.</li>
-
- <li>Copy the files <code>GENCHARS.nlm</code> and <code>DFTABLES.nlm</code>
- to the <code>SYS:</code> volume of a NetWare server and run using the following commands:
- <ul>
- <li><code>SYS:\genchars > sys:\test_char.h</code></li>
- <li><code>SYS:\dftables > sys:\chartables.c</code></li>
- </ul>
- </li>
-
- <li>Copy the files <code>test_char.h</code> and <code>chartables.c</code>
- to the directory <code>\httpd\os\netware</code> on the build machine.</li>
-
- <li>Select the target "Apache Full Debug" or "Apache Full Release" in
- the IDE and build. This will produce the file <code>APACHE2.nlm</code>
- along with all of the external module NLMs.</li>
- </ul>
-
-
-
<h3><a name="comp-make" id="comp-make">Building Apache using the NetWare makefiles:</a></h3>
If you installed to the default location <code>C:\Program
Files\Metrowerks\CodeWarrior</code>, you don't need to set this.</li>
+ <li>Set the environment variable <code>LDAPSDK</code> to the
+ location where you installed the LDAP Libraries for C, for example:
+ <div class="example"><p><code>Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc</code></p></div>
+ </li>
+
+ <li>Set the environment variable <code>ZLIBSDK</code> to the
+ location where you installed the source code for the ZLib Library,
+ for example:
+ <div class="example"><p><code>Set ZLIBSDK=D:\NOVELL\zlib</code></p></div>
+ </li>
+
<li>Set the environment variable <code>AP_WORK</code> to the full path of
- the <code>\httpd</code> directory.</li>
+ the <code>\httpd-2.0</code> directory.</li>
<li>Set the environment variable <code>APR_WORK</code> to the full path of
- the <code>\httpd\srclib\apr</code> directory.</li>
+ the <code>\httpd-2.0\srclib\apr</code> directory.</li>
<li>Make sure that the path to the AWK utility and the GNU make utility
(<code>gmake.exe</code>) have been included in the system's
<li>Download the source code and unzip to an appropriate directory on
your workstation.</li>
- <li>Change directory to <code>\httpd\srclib\apr-util\uri</code> and build
+ <li>Change directory to <code>\httpd-2.0\srclib\apr-util\uri</code> and build
<code>GENURI.nlm</code> by running "<code>gmake -f nwgnumakefile</code>".</li>
<li>Copy the file <code>GENURI.nlm</code> to the <code>SYS:</code> volume
</li>
<li>Copy the file <code>uri_delims.h</code> to the directory
- <code>\httpd\srclib\apr-util\uri</code> on the build machine.</li>
+ <code>\httpd-2.0\srclib\apr-util\uri</code> on the build machine.</li>
- <li>Change directory to <code>\httpd\srclib\apr</code> and build APR
+ <li>Change directory to <code>\httpd-2.0\srclib\apr</code> and build APR
by running "<code>gmake -f nwgnumakefile</code>"</li>
- <li>Change directory to <code>\httpd\srclib\pcre</code> and build
+ <li>Change directory to <code>\httpd-2.0\srclib\pcre</code> and build
<code>DFTABLES.nlm</code> by running "<code>gmake -f nwgnumakefile</code>"</li>
- <li>Change directory to <code>\httpd\server</code> and build
+ <li>Change directory to <code>\httpd-2.0\server</code> and build
<code>GENCHARS.nlm</code> by running "<code>gmake -f nwgnumakefile</code>"</li>
<li>Copy the files <code>GENCHARS.nlm</code> and <code>DFTABLES.nlm</code>
</li>
<li>Copy the files <code>test_char.h</code> and <code>chartables.c</code>
- to the directory <code>\httpd\os\netware</code> on the build machine.</li>
+ to the directory <code>\httpd-2.0\os\netware</code> on the build machine.</li>
- <li>Change directory to <code>\httpd</code> and build Apache by running
+ <li>Change directory to <code>\httpd-2.0</code> and build Apache by running
"<code>gmake -f nwgnumakefile</code>". You can create a distribution directory by
adding an install parameter to the command, for example:
<div class="example"><p><code>gmake -f nwgnumakefile install</code></p></div>
<ul>
- <li><code>gmake -f nwgnumakefile</code><br />Builds release versions of all of the
- binaries and copies them to a <code>\release</code> destination directory.</li>
+ <li><code>gmake -f nwgnumakefile</code><p>Builds release versions of all of the
+ binaries and copies them to a <code>\release</code> destination directory.</p></li>
- <li><code>gmake -f nwgnumakefile DEBUG=1</code><br />Builds debug versions of all of the
- binaries and copies them to a <code>\debug</code> destination directory.</li>
+ <li><code>gmake -f nwgnumakefile DEBUG=1</code><p>Builds debug versions of all of the
+ binaries and copies them to a <code>\debug</code> destination directory.</p></li>
- <li><code>gmake -f nwgnumakefile install</code><br />Creates a complete Apache
+ <li><code>gmake -f nwgnumakefile install</code><p>Creates a complete Apache
distribution with binaries, docs and additional support files in a
- <code>\dist\Apache2</code> directory.</li>
+ <code>\dist\Apache2</code> directory.</p></li>
- <li><code>gmake -f nwgnumakefile installdev</code><br />Same as install but also creates a
+ <li><code>gmake -f nwgnumakefile installdev</code><p>Same as install but also creates a
<code>\lib</code> and <code>\include</code> directory in the destination directory
- and copies headers and import files.</li>
+ and copies headers and import files.</p></li>
- <li><code>gmake -f nwgnumakefile clean</code><br />Cleans all object files and binaries
+ <li><code>gmake -f nwgnumakefile clean</code><p>Cleans all object files and binaries
from the <code>\release</code> or <code>\debug</code> build areas depending on whether
- <code>DEBUG</code> has been defined.</li>
+ <code>DEBUG</code> has been defined.</p></li>
- <li><code>gmake -f nwgnumakefile clobber_all</code><br />Same as clean and also deletes
- the distribution directory if it exists.</li>
+ <li><code>gmake -f nwgnumakefile clobber_all</code><p>Same as clean and also deletes
+ the distribution directory if it exists.</p></li>
</ul>