]> granicus.if.org Git - apache/blob - docs/manual/platform/netware.xml
Help doc writer to spot places where:
[apache] / docs / manual / platform / netware.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <!-- $LastChangedRevision$ -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <manualpage metafile="netware.xml.meta">
24   <parentdocument href="./">Platform Specific Notes</parentdocument>
25
26   <title>Using Apache With Novell NetWare</title>
27
28   <summary>
29
30     <p>This document explains how to install, configure and run
31     Apache 2.0 under Novell NetWare 6.0 and above. If you find any bugs,
32     or wish to contribute in other ways, please use our
33     <a href="http://httpd.apache.org/bug_report.html">bug reporting
34     page.</a></p>
35
36     <p>The bug reporting page and dev-httpd mailing list are
37     <em>not</em> provided to answer questions about configuration or
38     running Apache.  Before you submit a bug report or request, first
39     consult this document, the <a
40     href="http://wiki.apache.org/httpd/FAQ">Frequently Asked
41     Questions</a> page and the other relevant documentation topics. If
42     you still have a question or problem, post it to the <a
43     href="news://developer-forums.novell.com/novell.devsup.webserver">
44     novell.devsup.webserver</a> newsgroup, where many Apache users are
45     more than willing to answer new and obscure questions about using
46     Apache on NetWare.</p>
47
48     <p>Most of this document assumes that you are installing Apache
49     from a binary distribution. If you want to compile Apache
50     yourself (possibly to help with development, or to track down
51     bugs), see the section on <a href="#comp">Compiling Apache for
52     NetWare</a> below.</p>
53
54   </summary>
55
56   <section id="req">
57
58     <title>Requirements</title>
59
60     <p>Apache 2.0 is designed to run on NetWare 6.0 service pack 3
61     and above. If you are running a service pack less
62     than SP3, you must install the latest
63     <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
64     for C (LibC)</a>.</p>
65
66     <p>NetWare service packs are available <a
67     href="http://support.novell.com/misc/patlst.htm#nw">here</a>.</p>
68
69     <p>Apache 2.0 for NetWare can also be run in a NetWare 5.1 environment
70     as long as the latest service pack or the latest version
71     of the <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
72     for C (LibC)</a> has been installed .  <strong>WARNING:</strong> Apache 2.0
73     for NetWare has not been targeted for or tested in this environment.</p>
74
75   </section>
76
77   <section id="down">
78
79     <title>Downloading Apache for NetWare</title>
80
81     <p>Information on the latest version of Apache can be found on
82     the Apache web server at <a
83     href="http://www.apache.org/">http://www.apache.org/</a>. This
84     will list the current release, any more recent alpha or
85     beta-test releases, together with details of mirror web and
86     anonymous ftp sites. Binary builds of the latest releases of
87     Apache 2.0 for NetWare can be downloaded from
88     <a href="http://www.apache.org/dist/httpd/binaries/netware">here</a>.</p>
89
90   </section>
91
92   <section id="inst">
93
94     <title>Installing Apache for NetWare</title>
95
96     <p>There is no Apache install program for NetWare currently. If you
97     are building Apache 2.0 for NetWare from source, you will need to
98     copy the files over to the server manually.</p>
99
100     <p>Follow these steps to install Apache on NetWare from the
101     binary download (assuming you will install to
102     <code>sys:/apache2</code>):</p>
103
104     <ul>
105       <li>Unzip the binary download file to the root of the <code>SYS:</code>
106       volume (may be installed to any volume)</li>
107
108       <li>Edit the <code>httpd.conf</code> file setting <directive
109       module="core">ServerRoot</directive> and <directive
110       module="core">ServerName</directive> along with any file path values
111       to reflect your correct server settings</li>
112
113       <li>Add <code>SYS:/APACHE2</code> to the search path, for example:
114         <example>SEARCH ADD SYS:\APACHE2</example>
115       </li>
116
117     </ul>
118
119     <p>Follow these steps to install Apache on NetWare manually
120     from your own build source (assuming you will install to
121     <code>sys:/apache2</code>):</p>
122
123     <ul>
124       <li>Create a directory called <code>Apache2</code> on a
125       NetWare volume</li>
126
127       <li>Copy <code>APACHE2.NLM</code>, <code>APRLIB.NLM</code>
128       to <code>SYS:/APACHE2</code></li>
129
130       <li>Create a directory under <code>SYS:/APACHE2</code>
131       called <code>BIN</code></li>
132
133       <li>Copy <code>HTDIGEST.NLM</code>, <code>HTPASSWD.NLM</code>,
134       <code>HTDBM.NLM</code>, <code>LOGRES.NLM</code>, <code>ROTLOGS.NLM</code>
135       to <code>SYS:/APACHE2/BIN</code></li>
136
137       <li>Create a directory under <code>SYS:/APACHE2</code>
138       called <code>CONF</code></li>
139
140       <li>Copy the <code>HTTPD-STD.CONF</code> file to the
141       <code>SYS:/APACHE2/CONF</code> directory and rename to
142       <code>HTTPD.CONF</code></li>
143
144       <li>Copy the <code>MIME.TYPES</code>, <code>CHARSET.CONV</code> and
145       <code>MAGIC</code> files to <code>SYS:/APACHE2/CONF</code> directory</li>
146
147       <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ICONS</code>
148       to <code>SYS:/APACHE2/ICONS</code></li>
149
150       <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\MANUAL</code>
151       to <code>SYS:/APACHE2/MANUAL</code></li>
152
153       <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ERROR</code>
154       to <code>SYS:/APACHE2/ERROR</code></li>
155
156       <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\DOCROOT</code>
157       to <code>SYS:/APACHE2/HTDOCS</code></li>
158
159       <li>Create the directory <code>SYS:/APACHE2/LOGS</code>
160       on the server</li>
161
162       <li>Create the directory <code>SYS:/APACHE2/CGI-BIN</code>
163       on the server</li>
164
165       <li>Create the directory <code>SYS:/APACHE2/MODULES</code>
166       and copy all nlm modules into the <code>modules</code> directory</li>
167
168       <li>Edit the <code>HTTPD.CONF</code> file searching for all
169       <code>@@Value@@</code> markers and replacing them with the
170       appropriate setting</li>
171
172       <li>Add <code>SYS:/APACHE2</code> to the search path, for example:
173         <example>SEARCH ADD SYS:\APACHE2</example>
174       </li>
175     </ul>
176
177     <p>Apache may be installed to other volumes besides the default <code>SYS</code> volume.</p>
178
179     <p>During the build process, adding the keyword "install" to the makefile command line
180     will automatically produce a complete distribution package under the subdirectory
181     <code>DIST</code>. Install Apache by simply copying the distribution that was produced
182     by the makfiles to the root of a NetWare volume (see: <a href="#comp">Compiling Apache for
183     NetWare</a> below).</p>
184
185   </section>
186
187   <section id="run">
188
189     <title>Running Apache for NetWare</title>
190
191     <p>To start Apache just type <code>apache</code> at the
192     console. This will load apache in the OS address space. If you
193     prefer to load Apache in a protected address space you may
194     specify the address space with the load statement as follows:</p>
195
196     <example>
197       load address space = apache2 apache2
198     </example>
199
200     <p>This will load Apache into an address space called apache2.
201     Running multiple instances of Apache concurrently on NetWare is
202     possible by loading each instance into its own protected
203     address space.</p>
204
205     <p>After starting Apache, it will be listening to port 80
206     (unless you changed the <directive module="mpm_common">Listen</directive>
207     directive in the configuration files).
208     To connect to the server and access the default page,
209     launch a browser and enter the server's name or address. This
210     should respond with a welcome page, and a link to the Apache
211     manual. If nothing happens or you get an error, look in the
212     <code>error_log</code> file in the <code>logs</code>
213     directory.</p>
214
215     <p>Once your basic installation is working, you should
216     configure it properly by editing the files in the
217     <code>conf</code> directory.</p>
218
219     <p>To unload Apache running in the OS address space just type
220     the following at the console:</p>
221
222     <example>
223       unload apache2
224     </example>
225
226     <p>or</p>
227
228     <example>
229       apache2 shutdown
230     </example>
231
232     <p>If apache is running in a protected address space specify the
233     address space in the unload statement:</p>
234
235     <example>
236       unload address space = apache2 apache2
237     </example>
238
239     <p>When working with Apache it is important to know how it will
240     find the configuration files. You can specify a configuration
241     file on the command line in two ways:</p>
242
243     <ul>
244       <li><code>-f</code> specifies a path to a particular
245       configuration file</li>
246     </ul>
247
248     <example>
249       apache2 -f "vol:/my server/conf/my.conf"
250     </example>
251
252     <example>
253       apache -f test/test.conf
254     </example>
255
256     <p>In these cases, the proper <directive module="core">ServerRoot</directive>
257     should be set in the configuration file.</p>
258
259     <p>If you don't specify a configuration file name with <code>-f</code>,
260     Apache will use the file name compiled into the server, usually
261     <code>conf/httpd.conf</code>. Invoking Apache with the <code>-V</code>
262     switch will display this value labeled as <code>SERVER_CONFIG_FILE</code>.
263     Apache will then determine its <directive module="core">ServerRoot</directive>
264     by trying the following, in this order:</p>
265
266     <ul>
267       <li>A <code>ServerRoot</code> directive via a
268       <code>-C</code> switch.</li>
269
270       <li>The <code>-d</code> switch on the command line.</li>
271
272       <li>Current working directory</li>
273
274       <li>The server root compiled into the server.</li>
275     </ul>
276
277     <p>The server root compiled into the server is usually <code>sys:/apache2</code>.
278     invoking apache with the <code>-V</code> switch will display this value labeled as
279     <code>HTTPD_ROOT</code>.</p>
280
281     <p>Apache 2.0 for NetWare includes a set of command line directives that can
282     be used to modify or display information about the running instance of the
283     web server. These directives are only available while Apache is running. Each
284     of these directives must be preceded by the keyword <code>APACHE2</code>.</p>
285
286     <dl>
287       <dt>RESTART</dt>
288       <dd>Instructs Apache to terminate all running worker
289       threads as they become idle, reread the configuration file and restart each
290       worker thread based on the new configuration.</dd>
291
292       <dt>VERSION</dt>
293       <dd>Displays version information about the currently
294       running instance of Apache.</dd>
295
296       <dt>MODULES</dt>
297       <dd>Displays a list of loaded modules both built-in
298       and external.</dd>
299
300       <dt>DIRECTIVES</dt>
301       <dd>Displays a list of all available directives.</dd>
302
303       <dt>SETTINGS</dt>
304       <dd>Enables or disables the thread status display
305       on the console. When enabled, the state of each running threads is displayed
306       on the Apache console screen.</dd>
307
308       <dt>SHUTDOWN</dt>
309       <dd>Terminates the running instance of the Apache
310       web server.</dd>
311
312       <dt>HELP</dt>
313       <dd>Describes each of the runtime directives.</dd>
314     </dl>
315
316     <p>By default these directives are issued against the instance of Apache running
317     in the OS address space. To issue a directive against a specific instance running
318     in a protected address space, include the -p parameter along with the name of the
319     address space. For more information type "apache2 Help" on the command line.</p>
320
321   </section>
322
323   <section id="use">
324
325     <title>Configuring Apache for NetWare</title>
326
327     <p>Apache is configured by reading configuration files usually stored
328     in the <code>conf</code> directory. These are the same as files used
329     to configure the Unix version, but there are a few different directives for
330     Apache on NetWare. See the <a href="../mod/">Apache module
331     documentation</a> for all the available directives.</p>
332
333     <p>The main differences in Apache for NetWare are:</p>
334
335     <ul>
336       <li>
337         <p>Because Apache for NetWare is multithreaded, it does not
338         use a separate process for each request, as Apache does on some Unix
339         implementations. Instead there are only threads running: a parent
340         thread, and multiple child or worker threads which handle the requests.</p>
341
342         <p>Therefore the "process"-management directives are different:</p>
343
344         <p><directive module="mpm_common">MaxConnectionsPerChild</directive> -
345         Like the Unix directive, this controls how many connections
346         a worker thread will serve before exiting. The recommended default,
347         <code>MaxConnectionsPerChild 0</code>, causes the thread to continue servicing
348         request indefinitely. It is recommended on NetWare, unless there is some
349         specific reason, that this directive always remain set to <code>0</code>.</p>
350
351         <p><directive module="mpm_common">StartThreads</directive> -
352         This directive tells the server how many threads it should start initially.
353         The recommended default is <code>StartThreads 50</code>.</p>
354
355         <p><directive module="mpm_common">MinSpareThreads</directive> -
356         This directive instructs the server to spawn additional worker threads
357         if the number of idle threads ever falls below this value. The recommended
358         default is <code>MinSpareThreads 10</code>.</p>
359
360         <p><directive module="mpm_common">MaxSpareThreads</directive> -
361         This directive instructs the server to begin terminating worker threads
362         if the number of idle threads ever exceeds this value. The recommended
363         default is <code>MaxSpareThreads 100</code>.</p>
364
365         <p><directive module="mpm_netware">MaxThreads</directive> -
366         This directive limits the total number of work threads to a maximum
367         value. The recommended default is <code>ThreadsPerChild 250</code>.</p>
368
369         <p><directive module="mpm_common">ThreadStackSize</directive> -
370         This directive tells the server what size of stack to use
371         for the individual worker thread. The recommended default
372         is <code>ThreadStackSize 65536</code>.</p>
373       </li>
374
375       <li>
376         <p>The directives that accept filenames as arguments must use
377         NetWare filenames instead of Unix names. However, because Apache
378         uses Unix-style names internally, forward slashes must be used
379         rather than backslashes. It is recommended that all rooted file paths
380         begin with a volume name. If omitted, Apache will assume the
381         <code>SYS:</code> volume which may not be correct.</p>
382       </li>
383
384       <li>
385         <p>Apache for NetWare has the ability to load modules at
386         runtime, without recompiling the server. If Apache is
387         compiled normally, it will install a number of optional
388         modules in the <code>\Apache2\modules</code> directory.
389         To activate these, or other modules, the <directive
390         module="mod_so">LoadModule</directive> directive
391         must be used. For example, to active the status module, use
392         the following:</p>
393
394         <example>
395           LoadModule status_module modules/status.nlm
396         </example>
397
398         <p>Information on <a
399         href="../mod/mod_so.html#creating">creating loadable
400         modules</a> is also available.</p>
401       </li>
402     </ul>
403
404     <section id="use-add">
405
406       <title>Additional NetWare specific directives:</title>
407
408       <ul>
409         <li><directive module="core">CGIMapExtension</directive> -
410         This directive maps a CGI file extension to a script interpreter.</li>
411       </ul>
412       <ul>
413         <li><directive module="mod_nw_ssl">SecureListen</directive> -
414         Enables SSL encryption for a specified port.</li>
415       </ul>
416       <ul>
417         <li><directive module="mod_nw_ssl">NWSSLTrustedCerts</directive> -
418         Adds trusted certificates that are used to create secure connections to proxied servers.</li>
419       </ul>
420       <ul>
421         <li><directive module="mod_nw_ssl">NWSSLUpgradeable</directive> -
422         Allow a connection created on the specified address/port to be upgraded to an SSL connection.</li>
423       </ul>
424
425     </section>
426
427   </section>
428
429   <section id="comp">
430
431     <title>Compiling Apache for NetWare</title>
432
433     <p>Compiling Apache requires MetroWerks CodeWarrior 6.x or higher. Once
434     Apache has been built, it can be installed to the root of any NetWare
435     volume. The default is the <code>sys:/Apache2</code> directory.</p>
436
437     <p>Before running the server you must fill out the <code>conf</code>
438     directory. Copy the file <code>HTTPD-STD.CONF</code> from the distribution
439     <code>conf</code> directory and rename it to <code>HTTPD.CONF</code>.
440     Edit the <code>HTTPD.CONF</code> file searching for all <code>@@Value@@</code>
441     markers and replacing them with the appropriate setting. Copy over
442     the <code>conf/magic</code> and <code>conf/mime.types</code> files as well.
443     Alternatively, a complete distribution can be built by including the keyword
444     <code>install</code> when invoking the makefiles.</p>
445
446     <section id="comp-req">
447
448       <title>Requirements:</title>
449
450       <p>The following development tools are required to build
451       Apache 2.0 for NetWare:</p>
452
453       <ul>
454         <li>Metrowerks CodeWarrior 6.0 or higher with the
455         <a href="http://developer.novell.com/ndk/cwpdk.htm">NetWare PDK 3.0</a>
456         or higher.</li>
457
458         <li><a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
459         for C (LibC)</a></li>
460
461         <li><a href="http://developer.novell.com/ndk/cldap.htm">LDAP Libraries
462         for C</a></li>
463
464         <li><a href="http://www.gzip.org/zlib/">ZLIB Compression Library source code</a></li>
465
466         <li>AWK utility (awk, gawk or similar). AWK can be downloaded from
467         <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.
468         The utility must be found in your windows path and must be named <code>awk.exe</code>.</li>
469
470         <li>To build using the makefiles, you will need GNU make version 3.78.1 (GMake) available at
471         <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.</li>
472       </ul>
473
474     </section>
475
476     <section id="comp-make">
477
478       <title>Building Apache using the NetWare makefiles:</title>
479
480       <ul>
481         <li>Set the environment variable <code>NOVELLLIBC</code> to the
482         location of the NetWare Libraries for C SDK, for example:
483         <example>Set NOVELLLIBC=c:\novell\ndk\libc</example>
484         </li>
485
486         <li>Set the environment variable <code>METROWERKS</code> to the
487         location where you installed the Metrowerks CodeWarrior compiler,
488         for example:
489         <example>Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior</example>
490         If you installed to the default location <code>C:\Program
491         Files\Metrowerks\CodeWarrior</code>, you don't need to set this.</li>
492
493         <li>Set the environment variable <code>LDAPSDK</code> to the
494         location where you installed the LDAP Libraries for C, for example:
495         <example>Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc</example>
496         </li>
497
498         <li>Set the environment variable <code>ZLIBSDK</code> to the
499         location where you installed the source code for the ZLib Library,
500         for example:
501         <example>Set ZLIBSDK=D:\NOVELL\zlib</example>
502         </li>
503
504         <li>Set the environment variable <code>PCRESDK</code> to the location
505         where you installed the source code for the PCRE Library, for example:
506         <example>Set PCRESDK=D:\NOVELL\pcre</example>
507         </li>
508
509         <li>Set the environment variable <code>AP_WORK</code> to the full path of
510         the <code>httpd</code> source code directory.
511         <example>Set AP_WORK=D:\httpd-2.0.x</example>
512         </li>
513
514         <li>Set the environment variable <code>APR_WORK</code> to the full path of
515         the <code>apr</code> source code directory. Typically <code>\httpd\srclib\apr</code>
516         but the APR project can be outside of the httpd directory structure.
517         <example>Set APR_WORK=D:\apr-1.x.x</example>
518         </li>
519
520         <li>Set the environment variable <code>APU_WORK</code> to the full path of
521         the <code>apr-util</code> source code directory. Typically <code>\httpd\srclib\apr-util</code>
522         but the APR-UTIL project can be outside of the httpd directory structure.
523         <example>Set APU_WORK=D:\apr-util-1.x.x</example>
524         </li>
525
526         <li>Make sure that the path to the AWK utility and the GNU make utility
527         (<code>gmake.exe</code>) have been included in the system's
528         <code>PATH</code> environment variable.</li>
529
530         <li>Download the source code and unzip to an appropriate directory on
531         your workstation.</li>
532
533         <li>Change directory to <code>\httpd-2.0</code> and build the prebuild utilities
534         by running "<code>gmake -f nwgnumakefile prebuild</code>". This target will create
535         the directory <code>\httpd-2.0\nwprebuild</code> and copy each of the utilities
536         to this location that are necessary to complete the following build steps.
537         </li>
538
539         <li>Copy the files <code>\httpd-2.0\nwprebuild\GENCHARS.nlm</code> and
540         <code>\httpd-2.0\nwprebuild\DFTABLES.nlm</code> to the <code>SYS:</code> volume of a
541         NetWare server and run them using the following commands:
542           <example>
543             SYS:\genchars &gt; sys:\test_char.h<br />
544             SYS:\dftables sys:\chartables.c<br />
545           </example>
546         </li>
547
548         <li>Copy the files <code>test_char.h</code> and <code>chartables.c</code>
549         to the directory <code>\httpd-2.0\os\netware</code> on the build machine.</li>
550
551         <li>Change directory to <code>\httpd-2.0</code> and build Apache by running
552         "<code>gmake -f nwgnumakefile</code>". You can create a distribution directory by
553         adding an install parameter to the command, for example:
554         <example>gmake -f nwgnumakefile install</example>
555         </li>
556       </ul>
557
558     </section>
559
560     <section id="comp-add">
561
562       <title>Additional make options</title>
563
564       <ul>
565         <li><code>gmake -f nwgnumakefile</code><p>Builds release versions of all of the
566         binaries and copies them to a <code>\release</code> destination directory.</p></li>
567
568         <li><code>gmake -f nwgnumakefile DEBUG=1</code><p>Builds debug versions of all of the
569         binaries and copies them to a <code>\debug</code> destination directory.</p></li>
570
571         <li><code>gmake -f nwgnumakefile install</code><p>Creates a complete Apache
572         distribution with binaries, docs and additional support files in a
573         <code>\dist\Apache2</code> directory.</p></li>
574
575         <li><code>gmake -f nwgnumakefile prebuild</code><p>Builds all of the prebuild utilities
576         and copies them to the <code>\nwprebuild</code> directory.</p></li>
577
578         <li><code>gmake -f nwgnumakefile installdev</code><p>Same as install but also creates a
579         <code>\lib</code> and <code>\include</code> directory in the destination directory
580         and copies headers and import files.</p></li>
581
582         <li><code>gmake -f nwgnumakefile clean</code><p>Cleans all object files and binaries
583         from the <code>\release.o</code> or <code>\debug.o</code> build areas depending on whether
584         <code>DEBUG</code> has been defined.</p></li>
585
586         <li><code>gmake -f nwgnumakefile clobber_all</code><p>Same as clean and also deletes
587         the distribution directory if it exists.</p></li>
588       </ul>
589
590     </section>
591
592     <section id="comp-add-env">
593
594       <title>Additional environment variable options</title>
595
596       <ul>
597         <li>To build all of the experimental modules, set the environment
598         variable <code>EXPERIMENTAL</code>:
599         <example>Set EXPERIMENTAL=1</example>
600         </li>
601
602         <li>To build Apache using standard BSD style sockets rather than
603         Winsock, set the environment variable <code>USE_STDSOCKETS</code>:
604         <example>Set USE_STDSOCKETS=1</example>
605         </li>
606
607       </ul>
608
609     </section>
610
611     <section id="comp-mod_ssl">
612
613       <title>Building mod_ssl for the NetWare platform</title>
614
615       <p>By default Apache for NetWare uses the built-in module
616       <module>mod_nw_ssl</module> to provide SSL services.  This module
617       simply enables the native SSL services implemented in NetWare OS
618       to handle all encryption for a given port.  Alternatively, mod_ssl
619       can also be used in the same manner as on other platforms.</p>
620
621       <p>Before mod_ssl can be built for the NetWare platform, the OpenSSL
622       libraries must be provided.  This can be done through the following
623       steps:</p>
624
625       <ul>
626           <li>Download the recent OpenSSL 0.9.8 release source code from the
627           <a href="http://www.openssl.org/source/">OpenSSL Source</a>
628           page (older 0.9.7 versions need to be patched and are therefore not
629           recommended).</li>
630
631           <li>Edit the file <code>NetWare/set_env.bat</code> and modify any
632           tools and utilities paths so that they correspond to your build
633           environment.</li>
634
635           <li>From the root of the OpenSSL source directory, run the following
636           scripts:
637           <example>
638               Netware\set_env netware-libc<br />
639               Netware\build netware-libc
640           </example>
641           For performance reasons you should enable to build with ASM code.
642           Download NASM from the <a href="http://nasm.sourceforge.net/">SF site</a>.
643           Then configure OpenSSL to use ASM code:
644           <example>
645               Netware\build netware-libc nw-nasm enable-mdc2 enable-md5
646           </example>
647           Warning: dont use the CodeWarrior Assembler - it produces broken code!
648           </li>
649
650           <li>Before building Apache, set the environment variable
651           <code>OSSLSDK</code> to the full path to the root of the openssl
652           source code directory, and set WITH_MOD_SSL to 1.
653           <example>
654               Set OSSLSDK=d:\openssl-0.9.8x<br />
655               Set WITH_MOD_SSL=1
656           </example></li>
657
658       </ul>
659
660     </section>
661
662   </section>
663
664 </manualpage>
665