Make changes to your running Apache configuration without editing httpd.conf
Apache allows you to modify its configuration quickly and easily with the IfDefine and IfModule directives. IfDefine allows you to designate blocks of configuration to only be active when a command line flag has been passed, like so:
# /usr/local/apache/bin/httpd -DSSL
The above is a common example, defining (-D) a flag called SSL. This will enable parts of the configuration that look like:
<IfDefine SSL> # anything in here will be enabled if -DSSL # has been passed on the command line. </IfDefine>
Likewise, the IfModule directive checks to see if a module is currently loaded (i.e., uncommented) in the Apache configuration file. If mod_userdir.c is loaded, for example, then the following configuration will be enabled. If it's not, it will be silently ignored.
<IfModule mod_userdir.c> UserDir public_html </IfModule>
As Apache has grown, the httpd.conf file has become steadily more modularized as shown above, allowing you to tweak the various modules that load without fear of breaking your installation due to missing dependencies.
With the above examples in mind, you can easily change how Apache operates by passing simple command lines. Let's assume that every Friday you release a newsletter to ten thousand people. You know from experience that the weekends are when your web server gets hit the heaviest. Here's a snippet from a Apache configuration file ...