HTTPD Configuration scanner

"scanconf.pl" is a script that reads the top level Apache HTTPD configuration file and scans through it parsing all include files found in order to search the whole server configuration for any given directives. The search is case insensitive.

The current script can be found here: http://www.unbeliever.plus.com/apache/scripts/scanconf.pl

All the script needs to run the path to the top level configuration file and sometimes the server root (if it is not defined in the configuration file itself), both of which can be supplied via arguments.

Usage and Arguments

The common locations of the top level configuration file are hard coded into the script. They were taken from DistrosDefaultLayout. If none of these are found the file must be specified using the -c flag.

The default output shows the line number the directive was found at and the file it came from.

The various arguments are.

  • -c /path/to/file: specify path to top level configuration file.
  • -F: Suppress the printing the file name after each directive.
  • -h: Print the help message.
  • -L: Suppress the printing of line numbers.
  • -s /path/to/server/root: specify server root as some distributions use a 'default'.
  • -q: quiet mode, only print the 'directives' lines of output.
  • -v: output the full config line rather than just the directive.

Example Usage

The following show some examples of how to use the script. The last one actually dumps the whole active configuration without comments (possibly useful for configuration comparison?).

    • Show "Include" lines and all configuration files*
${renderedContent}
    • Search for a specific directive*
      ${renderedContent}
    • Search for multiple directives*
      ${renderedContent}
    • Specify the top level httpd config file*
      ${renderedContent}
    • Dump all configuration including arguments to all directives*
      ${renderedContent}

Possible Enhancements

  • Execute apachectl -V to determine a default ServerRoot.
  • Tidy up output for the longer directives.
  • No labels