This document describes how to convert your Linux machine into a HTTP server
and connect it to a Netware LAN using the Netware Client under Windows
</abstract>
<toc>
<sect>Introduction
<p>
This document assumes that you already know how to install TCP/IP on your Linux server and connect it physicaly to your LAN using an Ethernet network card. This also assumes you have some basic knowledge of Netware. The configuration of the Netware server has been shown using version 3.1x as the basis. You can also use INETCFG to achieve the same result. On the client side the discussion is with respect to Windows 3.1x, Windows for Workgroups and Win95.
<P>
In all the examples I am assuming that the Linux server has an IP address
of 200.0.0.1 and therefore I am assigning the address of 200.0.0.2 to the Netware server and 200.0.0.3 to the workstation. You may choose suitable addresses depending on your configuration.
<sect1>What is required
<p>
You will need the following software before attempting the installation.
<itemize>
<item>the HTTP server software which can be downloaded from
<htmlurl url="HTTP://netwire.novell.com/" name="Netwire"> (The TCP/IP files can be found in the Lan Workplace update LW42T3.exe).
<item>WWW Browsers like <htmlurl url="HTTP://home.netscape.com/" name="Netscape Navigator"> or <htmlurl url="http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/NCSAMosaicHome.html" name="NCSA Mosaic">
</itemize>
<sect>Install the HTTP server
<p>
When you download the server you have two options: To get the source and compile it yourself, or get the precompiled binaries. The precompiled binaries for Linux (ELF) version are available at NCSA but not the older versions.
<sect1>Preparation before downloading
<p>
The server at NCSA will guide you through the steps for configuration options and prepare the various files for you. But before you attempt to download HTTPd be prepared with answers to the following questions
<sect2>The Operating System
<p>
First, you much choose whether to download the source or a pre-compiled version of the software. If your particular system doesn't appear in the menu, then you will have to get the default source, and compile it yourself.
<p>
To check the version of your Linux go to the command prompt on your Linux machine and type
<tscreen><verb>
linux:~$ uname -a
</verb></tscreen>
which will respond with a line which looks similar to this
<tscreen><verb>
linux:~$ uname -a
Linux linux 1.0.9 #4 Tue Sep 13 04:05:51 CDT 1994 i586
linux:~$
</verb></tscreen>
<p>
The version of Linux is 1.0.9. (Note: The current versions are ELF and should look like linux 1.2.13 ELF)
<p>
The remaining parameters can be specified before downloading or configured later by modifying the file <tt>srm.conf</tt> in the <tt>/usr/local/etc/httpd/conf</tt> directory. The names of the actual directives that appear in the file <tt>httpd.conf</tt> are shown in brackets. The only exception is the directive DocumentRoot which appears in the file <tt>srm.conf</tt>
<sect2>Process type (ServerType)
<p>
This specifies how your machine will run your HTTPd server. The preferred method is "standalone". This makes the HTTP daemon to be running constantly. If you choose to load HTTPd under "inetd", the server binary will be reloaded into memory for every request, which may slow your server down.
<sect2>Binding Port (Port)
<p>
This specifies which port of your machine that the HTTPd daemon will bind
to and listen for HTTP requests. If you can login as "root", use the default setting of 80.
Otherwise choose a setting between 1025 and 65535.
<sect2>Server user identity (User)
<p>
This is the user id the server will change to when answering requests and acting on files.This question needs to be answered only if you are running the server as "standalone".
If you are someone without root permissions, just use your own login name. If you are system administrator, you might want to create a special user so you can control file permissions.
<sect2>Server group identity (Group)
<p>
This is the group id the server will change to when answering requests and acting on files. This is similar to Server User identity and is applicable only if you are running the server as standalone.
<p>
If you do not have root permissions, just use the name of your primary group. You can find out your group by typing
This is the email address that the user should send an email message to when reporting a problem with the server. You can put your personal e-mail address.
<sect2>Location of server directory (ServerRoot)
<p>
This is where the server resides on your system. If you have root permissions leave it in its recommended location <tt>/usr/local/etc/httpd</tt>. If you cannot login as root, choose a subdirectory in your home path. You can find out the path of your home directory with the <bf>pwd</bf> command.
<sect2>Location of HTML files (DocumentRoot)
<p>
This is where the HTML files to be served are located. The default location is <tt>/usr/local/etc/httpd/htdocs</tt>.
You could however set it to be the home directory of the special user you chose in Server user identity, or a subdirectory
in your home directory if you can't login as root.
<P>
When in doubt, use the default settings. Now that you have answers to the above questions you can <htmlurl url="http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html" name="Download NCSA HTTPd">. You should read the <htmlurl url="http://hoohoo.ncsa.uiuc.edu/docs/" name="HTTPd Documentation"> before you attempt installation. If you are planning to compile the code then you need to modify the makefiles in each of the three directories <tt>support, src, cgi-src</tt>. If your version of Linux is already supporte
d then you just have to type <bf>make linux</bf> at the top level directory (i.e. <tt>/usr/local/etc/httpd</tt>)
<sect1>Compiling HTTPd
<p>
Compiling is simple, just type <tt>make linux</tt> at the prompt in the server root directory.
<bf>Note:</bf> Users of pre-ELF Linux have to uncomment <tt>#define NO_PASS</tt> in file <tt>portability.h</tt> and set <tt>DBM_LIBS= -ldbm</tt> in the <tt>Makefile</tt> before compiling HTTPd.
<sect>Testing HTTPd
<p>
After you have installed HTTPd, login as root and start it by typing <bf>httpd & </bf>. (assuming you have installed as standalone) You should now be able to see it in the list generated by <bf>ps</bf>. The simplest way to test HTTPd is by Telnet. At the Linux command prompt type
<tscreen><verb>
linux:~$ telnet 200.0.0.1 80
</verb></tscreen>
where 80 is the default port for HTTP. If you have configured "Port" as something different then type that number instead. You should get a response which looks like this
<tscreen><verb>
Trying 200.0.0.1...
Connected to linux.ppg_corp.
Escape character is '^]'.
</verb></tscreen>
Now if you type in any character and press Enter you should get a response similar to the one shown below.
<tscreen><verb>
HTTP/1.0 400 Bad Request
Date: Wed, 10 Jan 1996 10:24:37 GMT
Server: NCSA/1.5
Content-type: text/html
<HEAD><TITLE>400 Bad Request < /TITLE> < /HEAD>
<BODY><H1>400 Bad Request < /H1>
Your client sent a query that this server could
not understand.<P>
Reason: Invalid or unsupported method.<P>
< /BODY>
</verb></tscreen>
<P>
Now we are ready to connect to this server using another PC and a WWW Browser.
<sect>Connecting on a Netware LAN with Windows
<p>
In order to setup the Netware server you should have Supervisor permissions or atleast Console operator permissions. If these cannot be got, try asking your Network Administrator to help you with the setup.
<P>
In the following examples I am assuming that the Linux server has an IP address of 200.0.0.1 and therefore I am assigning the address of 200.0.0.2 to the Netware server and 200.0.0.3 to the workstation. You may choose suitable addresses depending on your configuration.
<sect1>Setup the Netware server
<p>
At the Server enable the Ethernet_II frame type on the LAN by typing these commands or include them in the AUTOEXEC.ncf file.
<tscreen><verb>
load NE2000 frame=Ethernet_II name=IPNET
load TCPIP
bind IP to IPNET addr=200.0.0.2 mask=FF.FF.FF.0
</verb></tscreen>
<P>
You might have to specify the slot or board number while loading the NE2000 driver depending on your machine configuration. (eg: load NE2000 slot=3 frame=.....)
<sect1>Setup the Netware Client
<p>
On the PC you have three choices Win3.1,WFWG or Win95. The installation procedure differs between Win95 and the older windows if you are using the 32bit client from Microsoft or Novell. If you are going to use the 16bit client, the procedure is the you can refer to the Windows 3.x installation instructions. For installing the 32bit client for Win95 skip to
<ref id="Win95" name="Windows 95 installation">.
<sect2>Windows 3.x
<p>
If you are using Win3.1 or WFWG you can install the Netware Client (VLMs) and some additional files which are provided with the TCP/IP diskette, namely
<p>
TCPIP.exe, VTCPIP.386, WINSOCK.dll and WLIBSOCK.dll
<P>
Note that the WINSOCK.dll file is different from the ones provided with Win95 and Trumpet. Install the Netware Client with the support for windows. Copy VTCPIP.386, WINSOCK.dll and WLIBSOCK.dll to the SYSTEM directory and TCPIP.exe to the NWCLIENT directory. Now modify the STARTNET.bat in the NWCLIENT directory to
<tscreen><verb>
lsl
ne2000 ---> your network card driver
c:\windows\odihlp.exe ---->if you are using WFWG
ipxodi
tcpip ---> add this line
vlm
</verb></tscreen>
<P>
Create a subdirectory (say) <tt>\NET\TCP</tt> and copy the files HOSTS, NETWORKS, PROTOCOLS and SERVICES from <tt>/etc</tt> on your Linux server or the directory <tt>SYS:ETC</tt> on your Netware server. Edit the copied HOSTS file to add the line for your new Linux server. This will enable you to refer to the Linux server as <tt>http://linux.ppg_corp/</tt> instead of <tt>http://200.0.0.1/</tt>in your WWW browser
<tscreen><verb>
127.0.0.1 localhost
200.0.0.1 linux.ppg_corp
</verb></tscreen>
<p>
Edit the NET.cfg file in NWCLIENT directory
<tscreen><verb>
Link Driver NE2000
port 300
int 3
MEM D0000
FRAME Ethernet_802.2
; ---- add these lines ----
FRAME Ethernet_II
Protocol TCPIP
PATH TCP_CFG C:\NET\TCP
ip_address 200.0.0.3
ip_netmask 255.255.255.0
Link Support
MemPool 6192 ---> the minimum is 1024. Try with different values
Buffers 10 1580 ---> this again can be fine tuned
;---------------------------------
</verb></tscreen>
Edit the SYSTEM.ini file in the WINDOWS directory and add this entry for VTCPIP.386
Reboot your PC, run STARTNET.bat and you can now use your favorite WWW browser to access your Web pages. You need not login to Netware and you don't have to run TCPMAN (if you use Trumpet Winsock).
<sect2>Windows 95<label id="Win95">
<p>
This section explains how to install the 32bit client on Win95. Firstly you must
install the following
<tscreen><verb>
Client for Netware Networks (from Microsoft or Novell)
Microsoft TCP/IP Protocol
Network Adapter
</verb></tscreen>
<p>
To install these items, click on My Computer, Control Panel, Networks. Click Add. You will now be in a window that displays Client, Adapter, Protocol and Service.
To install the Client for Netware Networks:
<tscreen><verb>
1. DoubleClick on Client
2. Click on Microsoft or Novell
3. DoubleClick on Client for Netware Networks
</verb></tscreen>
<p>
To install the TCP/IP Protocol:
<tscreen><verb>
1. DoubleClick on Protocol
2. Click on Microsoft
3. DoubleClick on TCP/IP
</verb></tscreen>
<p>
Windows 95 by default installs several other protocols automatically. Remove
them by clicking on them and clicking the Remove button. Typically Win95 installs the Microsoft NetBeui protocol, and IPX/SPX compatible protocol. You can delete the NetBEUI protocol, but you will need the IPX/SPX protocol if you wish to login to the Netware Server. Refer to the
<htmlurl url="HTTP://www.aa.com/~pcd/slp95faq.html" name="TCP/IP Setup FAQ"> for more details.
<p>
To setup TCP/IP click on TCP/IP, click on Properties, click on the tab IP address
<tscreen><verb>
Enter your IP address in the "Specify an IP address "
box as 200.0.0.3
In the Subnet Mask box enter 255.255.255.0
Click OK
</verb></tscreen>
<p>
You should get a message to reboot. Do so. You should now be able to use the Browser to connect to your HTTP Server.
<sect>Other Connections
<P>
This is not the only way to connect to the Linux Server. You can try several other software like:
<itemize>
<item><htmlurl url="http://lake.canberra.edu.au/pub/samba/samba.html" name="SAMBA Web Page">
You might also be interested in providing access to the Netware Server by loading the <htmlurl url="ftp://linux01.gwdg.de/pub/ncpfs/"
name="NCP driver for Linux">
<sect>Applications of the WWW server
<p>
The HTTP server can be used in the office to provide transparent access to information residing on different servers, at several locations and directories. The data can be simple documents in Word, Lotus spreadsheets, or complex databases. It can be used to
<htmlurl url="http://cscsun1.larc.nasa.gov/~beowulf/db/web_access.html" name="create an interface with RDBMS"> like ORACLE and SYBASE for generating real-time information. Here is a
<htmlurl url="HTTP://www.w3.org/hypertext/WWW/RDBGate/Overview.html" name="list of database gateways to the WWW">
<sect>Credits & Legalities
<p>
Thanks to the people at NCSA for providing such excellent documentation &
David Anderson for his comments and trying out this HOWTO!
I am told (by David) that you cannot use the Netware Client without having a Netware License.