The Linux Intranet HOWTO Pramod Karnad, karnadp@mozart.inet.co.th v1.1, 14 March 1996 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 1. Introduction 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. 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. 1.1. What is required You will need the following software before attempting the installation. · the HTTP server software which can be downloaded from OneStep NCSA HTTPd Downloader page. · The Novell Netware Client available from Netwire (The TCP/IP files can be found in the Lan Workplace update LW42T3.exe). · WWW Browsers like Netscape Navigator or NCSA Mosaic 2. Install the HTTP server 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. 2.1. Preparation before downloading 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 2.1.1. The Operating System 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. To check the version of your Linux go to the command prompt on your Linux machine and type linux:~$ uname -a which will respond with a line which looks similar to this linux:~$ uname -a Linux linux 1.0.9 #4 Tue Sep 13 04:05:51 CDT 1994 i586 linux:~$ The version of Linux is 1.0.9. (Note: The current versions are ELF and should look like linux 1.2.13 ELF) The remaining parameters can be specified before downloading or configured later by modifying the file srm.conf in the /usr/local/etc/httpd/conf directory. The names of the actual directives that appear in the file httpd.conf are shown in brackets. The only exception is the directive DocumentRoot which appears in the file srm.conf 2.1.2. Process type (ServerType) 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. 2.1.3. Binding Port (Port) 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. 2.1.4. Server user identity (User) 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. 2.1.5. Server group identity (Group) 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. If you do not have root permissions, just use the name of your primary group. You can find out your group by typing groups at the Linux command prompt. 2.1.6. Server administrator email address (ServerAdmin) 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. 2.1.7. Location of server directory (ServerRoot) This is where the server resides on your system. If you have root permissions leave it in its recommended location /usr/local/etc/httpd. 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 pwd command. 2.1.8. Location of HTML files (DocumentRoot) This is where the HTML files to be served are located. The default location is /usr/local/etc/httpd/htdocs. 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. When in doubt, use the default settings. Now that you have answers to the above questions you can Download NCSA HTTPd. You should read the 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 support, src, cgi-src. If your version of Linux is already supporte d then you just have to type make linux at the top level directory (i.e. /usr/local/etc/httpd) 2.2. Compiling HTTPd Compiling is simple, just type make linux at the prompt in the server root directory. Note: Users of pre-ELF Linux have to uncomment #define NO_PASS in file portability.h and set DBM_LIBS= -ldbm in the Makefile before compiling HTTPd. 3. Testing HTTPd After you have installed HTTPd, login as root and start it by typing httpd & . (assuming you have installed as standalone) You should now be able to see it in the list generated by ps. The simplest way to test HTTPd is by Telnet. At the Linux command prompt type linux:~$ telnet 200.0.0.1 80 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 Trying 200.0.0.1... Connected to linux.ppg_corp. Escape character is '^]'. Now if you type in any character and press Enter you should get a response similar to the one shown below. HTTP/1.0 400 Bad Request Date: Wed, 10 Jan 1996 10:24:37 GMT Server: NCSA/1.5 Content-type: text/html 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> Now we are ready to connect to this server using another PC and a WWW Browser. 4. Connecting on a Netware LAN with Windows 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. 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. 4.1. Setup the Netware server At the Server enable the Ethernet_II frame type on the LAN by typing these commands or include them in the AUTOEXEC.ncf file. load NE2000 frame=Ethernet_II name=IPNET load TCPIP bind IP to IPNET addr=200.0.0.2 mask=FF.FF.FF.0 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=.....) 4.2. Setup the Netware Client 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 ``Windows 95 installation''. 4.2.1. Windows 3.x 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 TCPIP.exe, VTCPIP.386, WINSOCK.dll and WLIBSOCK.dll 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 lsl ne2000 ---> your network card driver c:\windows\odihlp.exe ---->if you are using WFWG ipxodi tcpip ---> add this line vlm Create a subdirectory (say) \NET\TCP and copy the files HOSTS, NETWORKS, PROTOCOLS and SERVICES from /etc on your Linux server or the directory SYS:ETC 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 http://linux.ppg_corp/ instead of http://200.0.0.1/in your WWW browser 127.0.0.1 localhost 200.0.0.1 linux.ppg_corp Edit the NET.cfg file in NWCLIENT directory 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 ;--------------------------------- Edit the SYSTEM.ini file in the WINDOWS directory and add this entry for VTCPIP.386 [386Enh] ..... network=*vnetbios, vipx.386, vnetware.386, 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). 4.2.2. Windows 95 This section explains how to install the 32bit client on Win95. Firstly you must install the following Client for Netware Networks (from Microsoft or Novell) Microsoft TCP/IP Protocol Network Adapter 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: 1. DoubleClick on Client 2. Click on Microsoft or Novell 3. DoubleClick on Client for Netware Networks To install the TCP/IP Protocol: 1. DoubleClick on Protocol 2. Click on Microsoft 3. DoubleClick on TCP/IP 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 TCP/IP Setup FAQ for more details. To setup TCP/IP click on TCP/IP, click on Properties, click on the tab IP address 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 You should get a message to reboot. Do so. You should now be able to use the Browser to connect to your HTTP Server. 5. Other Connections This is not the only way to connect to the Linux Server. You can try several other software like: · SAMBA Web Page · TCP/IP from Microsoft · Trumpet TCP/IP packet driver · CRYNWR Packet drivers You might also be interested in providing access to the Netware Server by loading the NCP driver for Linux 6. Applications of the WWW server 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 create an interface with RDBMS like ORACLE and SYBASE for generating real-time information. Here is a list of database gateways to the WWW 7. Credits & Legalities 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.