There are two main mechanisms to tell NCSA httpd where your scripts are. Each has its pluses and its minuses.
The usual setup is to have the following line in srm.conf:
ScriptAlias /cgi-bin/ cgi-bin/
This will make any request to the server which begins with /cgi-bin/ be fulfilled by executing the corresponding program in ServerRoot/cgi-bin/.
You may have more than one ScriptAlias directive in srm.conf to desingnate different directories as CGI.
The advantage of this setup is ease of administration, and centralization. Many system managers don't want things as dangerous as scripts anywhere in the filesystem. The disadvantage is that anyone wishing to create scripts must either have their own entry in srm.conf or must have write access to a ScriptAliased directory.
For instance, to make all files ending in .cgi scripts, use the following directive:
AddType application/x-httpd-cgi .cgi
Alternatively, you could add .sh and .pl after .cgi to allow automatic execution of shell scripts and PERL scripts. Note that you have to have Options ExecCGI activated in the directory you create scripts.
The advantage of this setup is that scripts may be absolutely anywhere. The disadvantage is that scripts may be absolutely anywhere (especially places you don't want them to be like users' home directories).
Return to the tutorial index