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.
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
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
which will respond with a line which looks similar to this
linux:~$ uname -a
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
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.
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.
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.
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.
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.
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.
This is where the HTML files to be served are located. The default location is
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
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.
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.