Apache is able to report to a client a great deal of what is happening to it internally. The necessary module is contained in the mod_info.c file, which should be included at build time. It provides a comprehensive overview of the server configuration, including all installed modules and directives in the configuration files. This module is not compiled into the server by default. To enable it, either load the corresponding module if you are running Win32 or Unix with DSO support enabled, or add the following line to the server build Config file and rebuild the server:
AddModule modules/standard/mod_info.o
It should also be noted that if mod_info is compiled into the server, its handler capability is available in all configuration files, including per-directory files (e.g., .htaccess). This may have security-related ramifications for your site. To demonstrate how this facility can be applied to any site, the Config file on .../site.info is the .../site.authent file slightly modified:
User webuser Group webgroup ServerName www.butterthlies.com NameVirtualHost 192.168.123.2 LogLevel debug <VirtualHost www.butterthlies.com> #CookieLog logs/cookies AddModuleInfo mod_setenvif.c "This is what I've added to mod_setenvif" ServerAdmin [email protected] DocumentRoot /usr/www/APACHE3/site.info/htdocs/customers ServerName www.butterthlies.com ErrorLog /usr/www/APACHE3/site.info/logs/error_log TransferLog /usr/www/APACHE3/site.info/logs/customers/access_log ScriptAlias /cgi-bin /usr/www/APACHE3/cgi-bin <Location /server-info> SetHandler server-info </Location> </VirtualHost> <VirtualHost sales.butterthlies.com> CookieLog logs/cookies ServerAdmin [email protected] DocumentRoot /usr/www/APACHE3/site.info/htdocs/salesmen ServerName sales.butterthlies.com ErrorLog /usr/www/APACHE3/site.info/logs/error_log TransferLog /usr/www/APACHE3/site.info/logs/salesmen/access_log ScriptAlias /cgi-bin /usr/www/APACHE3/cgi-bin <Directory /usr/www/APACHE3/site.info/htdocs/salesmen> AuthType Basic #AuthType Digest AuthName darkness AuthUserFile /usr/www/APACHE3/ok_users/sales AuthGroupFile /usr/www/APACHE3/ok_users/groups #AuthDBMUserFile /usr/www/APACHE3/ok_dbm/sales #AuthDBMGroupFile /usr/www/APACHE3/ok_dbm/groups #AuthDigestFile /usr/www/APACHE3/ok_digest/sales require valid-user satisfy any order deny,allow allow from 192.168.123.1 deny from all #require user daphne bill #require group cleaners #require group directors </Directory> <Directory /usr/www/APACHE3/cgi-bin> AuthType Basic AuthName darkness AuthUserFile /usr/www/APACHE3/ok_users/sales AuthGroupFile /usr/www/APACHE3/ok_users/groups #AuthDBMUserFile /usr/www/APACHE3/ok_dbm/sales #AuthDBMGroupFile /usr/www/APACHE3/ok_dbm/groups require valid-user </Directory> </VirtualHost>
Note the AddModuleInfo line and the <Location ...> block.
The AddModule directive allows the content of string to be shown as HTML-interpreted additional information for the module module-name.
AddModuleInfo module-name string Server config, virtual host
For example:
AddModuleInfo mod_auth.c 'See <A HREF="http://www.apache.org/docs/mod/ mod auth.html">http://www.apache.org/docs/mod/mod_auth.html</A>'
To invoke the module, browse to www.butterthlies.com/server-info,and you will see something like the following:
Apache Server Information Server Settings, mod_setenvif.c, mod_usertrack.c, mod_auth_digest.c, mod_auth_db.c, mod_auth_anon.c, mod_auth.c, mod_access.c, mod_rewrite.c, mod_alias.c, mod_userdir.c, mod_actions.c, mod_imap.c, mod_asis.c, mod_cgi.c, mod_dir.c, mod_autoindex.c, mod_ include.c, mod_info.c, mod_status.c, mod_negotiation.c, mod_mime.c, mod_log_config.c, mod_env.c, http_core.c Server Version: Apache/1.3.14 (Unix) Server Built: Feb 13 2001 15:20:23 API Version: 19990320:10 Run Mode: standalone User/Group: webuser(1000)/1003 Hostname/port: www.butterthlies.com:0 Daemons: start: 5 min idle: 5 max idle: 10 max: 256 Max Requests: per child: 0 keep alive: on max per connection: 100 Threads: per child: 0 Excess requests: per child: 0 Timeouts: connection: 300 keep-alive: 15 Server Root: /usr/www/APACHE3/site.info Config File: /usr/www/APACHE3/site.info/conf/httpd.conf PID File: logs/httpd.pid Scoreboard File: logs/apache_runtime_status Module Name: mod_setenvif.c Content handlers: none Configuration Phase Participation: Create Directory Config, Merge Directory Configs, Create Server Config, Merge Server Configs Request Phase Participation: Post-Read Request, Header Parse Module Directives: SetEnvIf - A header-name, regex and a list of variables. SetEnvIfNoCase - a header-name, regex and a list of variables. BrowserMatch - A browser regex and a list of variables. BrowserMatchNoCase - A browser regex and a list of variables. Current Configuration: Additional Information: This is what I've added to mod_setenvif ............
The file carries on to document all the compiled-in modules.
Copyright © 2003 O'Reilly & Associates. All rights reserved.