[APACHE DOCUMENTATION]
From: rst@ai.mit.edu (Robert S. Thau)
Date: Thu, 13 Jun 1996 10:07:47 -0400
Subject: Re:  Config file question...
Why are there three config files? Is this a throwback to NCSA?
Ah, so, grasshopper, you have now reached that level of mastery at which you must learn the Inner Mystery of the Three Config Files. Know then, that the reality described in the documentation is not the only or true reality. Rest and prepare for what awaits...

Let us begin by contemplating the surface form of the three config files, as they appear to the mundane and unenlightened webmaster. There is httpd.conf, which contains directives relating to the operation of the server as a whole, such as logging and management of the server pool. There is srm.conf, containing directives which relate to the management of the namespace and resources in the filesystem --- file typing, directory indexes, aliases, and so forth. Lastly, there is access.conf, which contains <Directory> sections relating information on access control in various directories. Three files, separate from each other, complementary in their purpose.

Yet, is this really the true state of affairs? For truly has it been written that the code which can be documented is not the true code. And indeed, careful contemplation of even a standard setup reveals signs of the inner unity which underlies what appears to the unenlightened programmer as three separate grammars. For a <VirtualHost> section may contain Alias and Redirect directives, yet these things surely relate to namespace management, do they not? And a <Directory> section may contain AddType directives which properly relate to file typing, is it not so?

This then, is the Inner Mystery --- the three config files are all, in effect, fragments of one True Config File --- a single entity which governs the operation of the server as a whole, with a single grammar. For if one were to take a TransferLog directive from httpd.conf, and add it at top level to srm.conf (or even access.conf, outside of a directory section), it would, in truth, function no differently.

Indeed, some truly englightened webmasters may wish to deal with only the single True Config File, and not the fragments. For them, it is possible to do so --- they may add

AccessConfig /dev/null
ResourceConfig /dev/null

to their httpd.conf to inform the server that it, and it alone, is the entire True Config File for the site, add the former contents of their srm.conf and access.conf files to httpd.conf, ditch srm.conf and access.conf entirely, and proceed with the single True Config File in clear view.

Since the masters know they inner mystery --- that there is, in truth, only one True Config File --- why then do we show the masses three? Therein lies a tale...

Back in the formative days of Apache, the server was based very closely on the code for the NCSA 1.3 web server. In this code, the inner unity of the One True Config File was *not* fully manifest, so that, say, a TransferLog directive which made a pleasing unity with httpd.conf would have caused errors in srm.conf. And many people based their sites upon this code --- NCSA's and ours --- and so the illusion of the Several Config Files was loosed upon the world, and many webmasters were lost into it. For these webmasters to use our present releases, they must accomodate the ways of illusion which the webmasters have fallen into. But the True Config File is accessible to those who know its mystery.

... and if someone doesn't put the answers to these questions into a FAQ someplace, you are all at risk of being assaulted again with yet another excerpt from my rejected scripts for "Kung Fu: The Legend drags its Lame Ass into Cyberspace" ...

rst