summaryrefslogtreecommitdiff
path: root/docs/manual/mod/mod_info.html.en
blob: 9d08e476e9d552a52c0fdb22cb052e7f71e1c06d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_info - Apache HTTP Server</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.4</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache Module mod_info</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/mod/mod_info.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_info.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_info.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_info.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Provides a comprehensive overview of the server
configuration</td></tr>
<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>info_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_info.c</td></tr></table>
<h3>Summary</h3>

    <p>To configure <code class="module"><a href="../mod/mod_info.html">mod_info</a></code>, add the following to your
    <code>httpd.conf</code> file.</p>

    <pre class="prettyprint lang-config">
&lt;Location /server-info&gt;
    SetHandler server-info
&lt;/Location&gt;
    </pre>


    <p>You may wish to use <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> inside the
    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
    directive to limit access to your server configuration
    information:</p>

    <pre class="prettyprint lang-config">
&lt;Location /server-info&gt;
    SetHandler server-info
    Require host example.com
&lt;/Location&gt;
    </pre>


    <p>Once configured, the server information is obtained by
    accessing <code>http://your.host.example.com/server-info</code></p>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</a></li>
</ul>
<h3>Topics</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#security">Security Issues</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#queries">Selecting the information shown</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#startup">Dumping the configuration on startup</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#limitations">Known Limitations</a></li>
</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="security" id="security">Security Issues</a></h2>
    <p>Once <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> is loaded into the server, its
    handler capability is available in <em>all</em> configuration
    files, including per-directory files (<em>e.g.</em>,
    <code>.htaccess</code>). This may have security-related
    ramifications for your site.</p>

    <p>In particular, this module can leak sensitive information
    from the configuration directives of other Apache modules such as
    system paths, usernames/passwords, database names, etc. Therefore,
    this module should <strong>only</strong> be
    used in a controlled environment and always with caution.</p>

    <p>You will probably want to use <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>
    to limit access to your server configuration information.</p>

    <div class="example"><h3>Access control</h3><pre class="prettyprint lang-config">
&lt;Location /server-info&gt;
    SetHandler server-info
    Order allow,deny
    # Allow access from server itself
    Allow from 127.0.0.1
    # Additionally, allow access from local workstation
    Allow from 192.168.1.17
&lt;/Location&gt;
      </pre>
</div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="queries" id="queries">Selecting the information shown</a></h2>
    <p>By default, the server information includes a list of
    all enabled modules, and for each module, a description of
    the directives understood by that module, the hooks implemented
    by that module, and the relevant directives from the current
    configuration.</p>

    <p>Other views of the configuration information are available by
    appending a query to the <code>server-info</code> request. For
    example, <code>http://your.host.example.com/server-info?config</code>
    will show all configuration directives.</p>

    <dl>
        <dt><code>?&lt;module-name&gt;</code></dt>
            <dd>Only information relevant to the named module</dd>
        <dt><code>?config</code></dt>
            <dd>Just the configuration directives, not sorted by module</dd>
        <dt><code>?hooks</code></dt>
            <dd>Only the list of Hooks each module is attached to</dd>
        <dt><code>?list</code></dt>
            <dd>Only a simple list of enabled modules</dd>
        <dt><code>?server</code></dt>
            <dd>Only the basic server information</dd>
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="startup" id="startup">Dumping the configuration on startup</a></h2>
    <p>If the config define <code>-DDUMP_CONFIG</code> is set,
    <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> will dump the pre-parsed configuration to
    <code>stdout</code> during server startup. Pre-parsed means that
    directives like
    <code class="directive"><a href="../mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code> and
    <code class="directive"><a href="../mod/core.html#ifmodule">&lt;IfModule&gt;</a></code> are
    evaluated and environment varialbles are replaced. However it does
    not represent the final state of the configuration. In particular,
    it does not represent the merging or overriding that may happen
    for repeated directives.</p>

    <p>This is roughly equivalent to the <code>?config</code> query.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="limitations" id="limitations">Known Limitations</a></h2>
    <p><code class="module"><a href="../mod/mod_info.html">mod_info</a></code> provides its information by reading the
    parsed configuration, rather than reading the original configuration
    file. There are a few limitations as a result of the way the parsed
    configuration tree is created:</p>
    <ul>
      <li>Directives which are executed immediately rather than being
          stored in the parsed configuration are not listed. These include
          <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>,
          <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>, and
          <code class="directive"><a href="../mod/mod_so.html#loadfile">LoadFile</a></code>.</li>
      <li>Directives which control the configuration file itself, such as
          <code class="directive"><a href="../mod/core.html#include">Include</a></code>,
          <code class="directive"><a href="../mod/core.html#&lt;ifmodule&gt;">&lt;IfModule&gt;</a></code> and
          <code class="directive"><a href="../mod/core.html#&lt;ifdefine&gt;">&lt;IfDefine&gt;</a></code> are not
          listed, but the included configuration directives are.</li>
      <li>Comments are not listed. (This may be considered a feature.)</li>
      <li>Configuration directives from <code>.htaccess</code> files are
          not listed (since they do not form part of the permanent server
          configuration).</li>
      <li>Container directives such as
          <code class="directive"><a href="../mod/core.html#&lt;directory&gt;">&lt;Directory&gt;</a></code>
          are listed normally, but <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> cannot figure
          out the line number for the closing
          <code class="directive"><a href="../mod/core.html#&lt;/directory&gt;">&lt;/Directory&gt;</a></code>.</li>
      <li>Directives generated by third party modules such as <a href="http://perl.apache.org">mod_perl</a>
          might not be listed.</li>
    </ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adds additional information to the module
information displayed by the server-info handler</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_info</td></tr>
</table>
    <p>This allows the content of <var>string</var> to be shown as
    HTML interpreted, <strong>Additional Information</strong> for
    the module <var>module-name</var>. Example:</p>

    <pre class="prettyprint lang-config">
AddModuleInfo mod_deflate.c 'See &lt;a \
    href="http://httpd.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\
    http://httpd.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'
    </pre>


</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_info.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_info.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_info.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_info.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_info.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>