netware.xml revision fbaa3c719d2586c59eeea0bf9995a6854106c5ff
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb<manualpage>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>This document explains how to install, configure and run
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Apache 2.0 under Novell NetWare 5.1 and above. If you find any bugs,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb or wish to contribute in other ways, please use our
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <a href="http://httpd.apache.org/bug_report.html">bug reporting
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>The bug reporting page and dev-httpd mailing list are <em>not</em>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb provided to answer questions about configuration or running Apache.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Before you submit a bug report or request, first consult this document, the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <a href="/faq/index.html">Frequently Asked Questions</a> page and the other
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb relevant documentation topics. If you still have a question or problem,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb post it to the <a href="news://developer-forums.novell.com/novell.devsup.webserver">
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb novell.devsup.webserver</a> newsgroup, where many Apache users are more than
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb willing to answer new and obscure questions about using Apache on NetWare.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Most of this document assumes that you are installing Apache
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb from a binary distribution. If you want to compile Apache
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb yourself (possibly to help with development, or to track down
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb bugs), see the section on <a href="#comp">Compiling Apache for
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </summary>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Apache 2.0 is designed to run on NetWare 5.1 and above.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><strong>If running on NetWare 5.1 you must install Service
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><strong>If running on NetWare 6 you must install Service
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb href="http://support.novell.com/misc/patlst.htm#nw">here</a>.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Information on the latest version of Apache can be found on
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb the Apache web server at <a
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb href="http://www.apache.org/">http://www.apache.org/</a>. This
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb will list the current release, any more recent alpha or
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb beta-test releases, together with details of mirror web and
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb anonymous ftp sites.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>There is no Apache install program for NetWare currently. You
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb will need to compile apache and copy the files over to the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb server manually. An install program will be posted at a later
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Follow these steps to install Apache on NetWare from the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb binary download (assuming you will install to
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Unzip the binary download file to the root of the <code>SYS:</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb volume (may be installed to any volume)</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Edit the <code>httpd.conf</code> file setting <directive
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb module="core">ServerName</directive> to reflect your correct server
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb settings</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Add <code>SYS:/APACHE2</code> to the search path, for example:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Follow these steps to install Apache on NetWare manually
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb from your own build source (assuming you will install to
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb NetWare volume</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy <code>APACHE2.NLM</code>, <code>APRLIB.NLM</code>,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the <code>MIME.TYPES</code> and <code>MAGIC</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ICONS</code>
c3e342e5b0b9fea6617ee16d2da02c3ef2108126dougm <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\MANUAL</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ERROR</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\DOCROOT</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb on the server</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Create the directory <code>SYS:/APACHE2/CGI-BIN</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb on the server</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Create the directory <code>SYS:/APACHE2/MODULES</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb and copy all nlm modules into the <code>modules</code> directory</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Edit the <code>HTTPD.CONF</code> file searching for all
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>@@Value@@</code> markers and replacing them with the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb appropriate setting</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Add <code>SYS:/APACHE2</code> to the search path, for example:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Apache may be installed to other volumes besides the default <code>SYS</code> volume.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb console. This will load apache in the OS address space. If you
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe prefer to load Apache in a protected address space you may
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe specify the address space with the load statement as follows:</p>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe load address space = apache2 apache2
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe <p>This will load Apache into an address space called apache.
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe Running multiple instances of Apache concurrently on NetWare is
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe possible by loading each instance into its own protected
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe address space.</p>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe <p>After starting Apache, it will be listening to port 80
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe (unless you changed the <directive module="mpm_common">Listen</directive>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe directive in the configuration files).
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe To connect to the server and access the default page,
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe launch a browser and enter the server's name or address. This
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe should respond with a welcome page, and a link to the Apache
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe manual. If nothing happens or you get an error, look in the
2f1949bb0e3c209db94c8d521cba7380b9d11421trawick <code>error_log</code> file in the <code>logs</code>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe directory.</p>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe <p>Once your basic installation is working, you should
2f1949bb0e3c209db94c8d521cba7380b9d11421trawick configure it properly by editing the files in the
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe <p>To unload Apache running in the OS address space just type
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe the following at the console:</p>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe unload apache2
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe apache2 shutdown
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe <p>If apache is running in a protected address space specify the
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe address space in the unload statement:</p>
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe unload address space = apache2 apache2
290ecc1ddceca1ed49bc1a5338921264b5c3e07cwrowe <p>When working with Apache it is important to know how it will
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb find the configuration files. You can specify a configuration
8aefbd756763807188d2e3ce336a8680e4893066wrowe file on the command line in two ways:</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb configuration file</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </example>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </example>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>In these cases, the proper <directive module="core">ServerRoot</directive>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb should be set in the configuration file.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>If you don't specify a configuration file name with <code>-f</code>,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Apache will use the file name compiled into the server, usually
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>conf/httpd.conf</code>. Invoking Apache with the <code>-V</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb switch will display this value labeled as <code>SERVER_CONFIG_FILE</code>.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Apache will then determine its <directive module="core">ServerRoot</directive>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb by trying the following, in this order:</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>The <code>-d</code> switch on the command line.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>The server root compiled into the server is usually <code>sys:/apache2</code>.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb invoking apache with the <code>-V</code> switch will display this value labeled as
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Apache 2.0 for NetWare includes a set of command line directives that can
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb be used to modify or display information about the running instance of the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb web server. Each of these directives must be preceded by the keyword
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <dd>Instructs Apache to terminate all running worker
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb threads as they become idle, reread the configuration file and restart each
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb worker thread based on the new configuration.</dd>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <dd>Displays version information about the currently
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb running instance of Apache.</dd>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <dd>Displays a list of loaded modules both built-in
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb and external.</dd>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <dd>Enables or disables the thread status display
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb on the console. When enabled, a status of the number of running threads
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb is displayed along with their status.</dd>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <dd>Terminates the running instance of the Apache
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb web server.</dd>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Apache is configured by files in the <code>conf</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb directory. These are the same as files used to configure the
4ca6cbe768b4e0917ac0b76333c26a7d5396d454trawick Unix version, but there are a few different directives for
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Because Apache for NetWare is multithreaded, it does not
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb use a separate process for each request, as Apache does in some Unix
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb implementations. Instead there are only threads running: a parent
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb thread, and a multiple child threads which handle the requests.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>So the "process"-management directives are different:</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><directive module="mpm_common">MaxRequestsPerChild</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Like the Unix directive, this controls how many requests
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb a worker thread will serve before exiting. The recommended default,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>MaxRequestsPerChild 0</code>, causes the thread to continue servicing
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb request indefinitely. It is recommended on NetWare, unless there is some
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb specific reason, that this directive always remain set to <code>0</code>.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><directive module="mpm_common">StartThreads</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This directive tells the server how many threads it should start initially.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb The recommended default is <code>StartThreads 50</code>.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><directive module="mpm_common">MinSpareThreads</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This directive instructs the server to spawn additional worker threads
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb if the number of idle threads ever falls below this value. The recommended
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><directive module="mpm_common">MaxSpareThreads</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This directive instructs the server to begin terminating worker threads
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb if the number of idle threads ever exceeds this value. The recommended
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><directive module="mpm_netware">MaxThreads</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This directive limits the total number of work threads to a maximum
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb value. The recommended default is <code>ThreadsPerChild 250</code>.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p><directive module="mpm_netware">ThreadStackSize</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This directive tells the server what size of stack to use
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb for the individual worker thread. The recommended default
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>The directives that accept filenames as arguments now
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb must use NetWare filenames instead of Unix ones. However,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb because Apache uses Unix-style names internally, you must
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb use forward slashes, not backslashes. It is recommended that all rooted
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb file paths begin with a volume name. If omitted, Apache will
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Apache for NetWare has the ability to load modules at
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb runtime, without recompiling the server. If Apache is
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb compiled normally, it will install a number of optional
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb To activate these, or other modules, the <directive
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb must be used. For example, to active the status module, use
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb the following (in addition to the status-activating
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </example>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb href="/mod/mod_so.html#creating">creating loadable
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><directive module="core">CGIMapExtension</directive> -
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This directive maps a CGI file extension to a script interpreter.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Compiling Apache requires MetroWerks CodeWarrior 6.x or higher to
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb be properly installed. Once Apache has been built, it needs to be
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb installed on a NetWare volume's root directory. The default is the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>Before running the server you must fill out the <code>conf</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb directory. Copy the file <code>HTTPD-STD.CONF</code> from the distribution
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>conf</code> directory and rename it to <code>HTTPD.CONF</code>.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Edit the <code>HTTPD.CONF</code> file searching for all <code>@@Value@@</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb markers and replacing them with the appropriate setting. Copy over
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb the <code>conf/magic</code> and <code>conf/mime.types</code> files as well.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>The following development tools are required to build
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Apache 2.0 for NetWare:</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Metrowerks CodeWarrior 6.0 or higher with the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <a href="http://developer.novell.com/ndk/cwpdk.htm">NetWare PDK 3.0</a>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb or higher.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><a href="http://developer.novell.com/ndk/ws2comp.htm">WinSock 2
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>To build using either the project file or the make files, requires an
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb AWK utility (awk, gawk or similar). AWK can be downloaded from
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb The utility must be found in your windows path and must be named <code>awk.exe</code>.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>To build using the makefiles, you will need GNU make version 3.78.1 (GMake) available at
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <title>Building Apache using the Metrowerks Project Files:</title>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <p>All major pieces of Apache and APR are built using the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>ApacheNW.mcp</code> and <code>LibAprNW.mcp</code> project files.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This includes modules such as status, info, proxy, etc.</p>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Set the environment variable <code>NovellLibC</code> to the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb location of the NetWare Libraries for C SDK, for example:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Make sure that the path to the CodeWarrior command line tools
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb (<code>MWCCNLM.exe</code>, <code>MWLDNLM.exe</code>) has been
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb included in the system's <code>PATH</code> environment variable.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Make sure that the path to the AWK utility has been included in the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Download the source code and unzip to an appropriate directory on
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb your workstation.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\srclib\apr\build</code> and run the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb batch file <code>prebuildnw.bat</code>. The batch file will setup the build
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb environment for building the APR libraries. It will also run 2 AWK scripts
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb that will generate the export files for APR.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\srclib\apr</code> and extract the project
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb file <code>LIBAPRNW.mcp</code> from the <code>LIBAPRNW.mcp.zip</code> file.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Open the <code>LIBAPRNW.mcp</code> project file in the Metrowerks IDE.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Select the target "Build Util - Gen URL Delim" and build the target.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb This target will produce the NLM <code>GENURI.nlm</code></li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the file <code>GENURI.nlm</code> to the <code>SYS:</code> volume
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb of a NetWare server and run using the following command:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>SYS:\genuri > sys:\uri_delims.h</code></li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the file <code>uri_delims.h</code> to the directory
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>\httpd\srclib\apr-util\uri</code> on the build machine.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Select the target "APR Debug NLM" or "APR Release NLM" in the IDE and build.
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>[Optional] Select any of the LIB targets to produce a
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb statically linkable libraries.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\build</code> and run the batch file
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>prebuildnw.bat</code>. This batch file will setup the build environment
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb for building the <code>APACHE.nlm</code>. It will also run several AWK scripts
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb that will generate the export files for APACHE.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\http</code> and extract the project file
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>ApacheNW.mcp</code> from the <code>ApacheNW.mcp.zip</code> file.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Open the <code>ApacheNW.mcp</code> project file in the Metrowerks IDE.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Select the target "Build Utility - DFTables" and build the target.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Select the target "Build Util - Gen Test Chars" and build the target.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the files <code>GENCHARS.nlm</code> and <code>DFTABLES.nlm</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb to the <code>SYS:</code> volume of a NetWare server and run using the following commands:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>SYS:\genchars > sys:\test_char.h</code></li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>SYS:\dftables > sys:\chartables.c</code></li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the files <code>test_char.h</code> and <code>chartables.c</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb to the directory <code>\httpd\os\netware</code> on the build machine.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Select the target "Apache Full Debug" or "Apache Full Release" in
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb the IDE and build. This will produce the file <code>APACHE2.nlm</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb along with all of the external module NLMs.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <title>Building Apache using the NetWare makefiles:</title>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Set the environment variable <code>NOVELLLIBC</code> to the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb location of the NetWare Libraries for C SDK, for example:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Set the environment variable <code>METROWERKS</code> to the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb location where you installed the Metrowerks CodeWarrior compiler,
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb for example:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <example>Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior</example>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb If you installed to the default location <code>C:\Program
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb Files\Metrowerks\CodeWarrior</code>, you don't need to set this.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Set the environment variable <code>AP_WORK</code> to the full path of
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Set the environment variable <code>APR_WORK</code> to the full path of
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Make sure that the path to the AWK utility and the GNU make utility
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb (<code>gmake.exe</code>) have been included in the system's
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Download the source code and unzip to an appropriate directory on
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb your workstation.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\srclib\apr-util\uri</code> and build
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>GENURI.nlm</code> by running "<code>gmake -f nwgnumakefile</code>".</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the file <code>GENURI.nlm</code> to the <code>SYS:</code> volume
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb of a NetWare server and run using the following command:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the file <code>uri_delims.h</code> to the directory
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>\httpd\srclib\apr-util\uri</code> on the build machine.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\srclib\apr</code> and build APR
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\srclib\pcre</code> and build
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>DFTABLES.nlm</code> by running "<code>gmake -f nwgnumakefile</code>"</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd\server</code> and build
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>GENCHARS.nlm</code> by running "<code>gmake -f nwgnumakefile</code>"</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the files <code>GENCHARS.nlm</code> and <code>DFTABLES.nlm</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb from their respective directories to the <code>SYS:</code> volume of a
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb NetWare server and run them using the following commands:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </example>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Copy the files <code>test_char.h</code> and <code>chartables.c</code>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb to the directory <code>\httpd\os\netware</code> on the build machine.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li>Change directory to <code>\httpd</code> and build Apache by running
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb "<code>gmake -f nwgnumakefile</code>". You can create a distribution directory by
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb adding an install parameter to the command, for example:
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>gmake -f nwgnumakefile</code><br />Builds release versions of all of the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb binaries and copies them to a <code>\release</code> destination directory.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>gmake -f nwgnumakefile DEBUG=1</code><br />Builds debug versions of all of the
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb binaries and copies them to a <code>\debug</code> destination directory.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>gmake -f nwgnumakefile install</code><br />Creates a complete Apache
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb distribution with binaries, docs and additional support files in a
c4f311d9c637c74c57ef51a1a3a610bb48af1ce8wrowe <li><code>gmake -f nwgnumakefile installdev</code><br />Same as install but also creates a
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <code>\lib</code> and <code>\include</code> directory in the destination directory
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb and copies headers and import files.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>gmake -f nwgnumakefile clean</code><br />Cleans all object files and binaries
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb from the <code>\release</code> or <code>\debug</code> build areas depending on whether
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb <li><code>gmake -f nwgnumakefile clobber_all</code><br />Same as clean and also deletes
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb the distribution directory if it exists.</li>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb </section>
b38846b15c8891c6dec44dcc4f96ca40721bf663rbb</manualpage>