Next Previous Contents

## 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

### The Operating System

First, you must 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 2.0.29 #4 Tue Sep 13 04:05:51 CDT 1994 i586
>        linux:~$

> `

The version of Linux is 2.0.29.

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`

### 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### 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 at http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html. You should read the HTTPd Documentation at http://hoohoo.ncsa.uiuc.edu/docs/ before you attempt installation. If you are planning to compile the code then you need to modify the makefiles in each of the th ree directories `support, src, cgi-src`. If your version of Linux is already supported 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.

Next Previous Contents