mirror of
https://github.com/apache/httpd.git
synced 2025-07-29 09:01:18 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1673947 13f79535-47bb-0310-9956-ffa450edef68
240 lines
11 KiB
XML
240 lines
11 KiB
XML
<?xml version='1.0' encoding='UTF-8' ?>
|
|
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
|
|
<!-- $LastChangedRevision$ -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<manualpage metafile="configuring.xml.meta">
|
|
|
|
<title>Configuration Files</title>
|
|
|
|
<summary>
|
|
<p>This document describes the files used to configure Apache HTTP
|
|
Server.</p>
|
|
</summary>
|
|
|
|
<section id="main">
|
|
<title>Main Configuration Files</title>
|
|
<related>
|
|
<modulelist>
|
|
<module>mod_mime</module>
|
|
</modulelist>
|
|
<directivelist>
|
|
<directive module="core" type="section">IfDefine</directive>
|
|
<directive module="core">Include</directive>
|
|
<directive module="mod_mime">TypesConfig</directive>
|
|
</directivelist>
|
|
</related>
|
|
|
|
<p>Apache HTTP Server is configured by placing <a
|
|
href="mod/directives.html">directives</a> in plain text
|
|
configuration files. The main configuration file is usually called
|
|
<code>httpd.conf</code>. The location of this file is set at
|
|
compile-time, but may be overridden with the <code>-f</code>
|
|
command line flag. In addition, other configuration files may be
|
|
added using the <directive module="core">Include</directive>
|
|
directive, and wildcards can be used to include many configuration
|
|
files. Any directive may be placed in any of these configuration
|
|
files. Changes to the main configuration files are only
|
|
recognized by httpd when it is started or restarted.</p>
|
|
|
|
<p>The server also reads a file containing mime document types;
|
|
the filename is set by the <directive
|
|
module="mod_mime">TypesConfig</directive> directive,
|
|
and is <code>mime.types</code> by default.</p>
|
|
</section>
|
|
|
|
<section id="syntax">
|
|
<title>Syntax of the Configuration Files</title>
|
|
|
|
<p>httpd configuration files contain one directive per line.
|
|
The backslash "\" may be used as the last character on a line
|
|
to indicate that the directive continues onto the next line.
|
|
There must be no other characters or white space between the
|
|
backslash and the end of the line.</p>
|
|
|
|
<p>Arguments to directives are separated by whitespace. If an
|
|
argument contains spaces, you must enclose that argument in quotes.</p>
|
|
|
|
<p>Directives in the configuration files are case-insensitive,
|
|
but arguments to directives are often case sensitive. Lines
|
|
that begin with the hash character "#" are considered
|
|
comments, and are ignored. Comments may <strong>not</strong> be
|
|
included on the same line as a configuration directive.
|
|
White space occurring before a directive is ignored, so
|
|
you may indent directives for clarity. Blank lines are also ignored.</p>
|
|
|
|
<p>The values of variables defined with the <directive
|
|
module="core">Define</directive> of or shell environment variables can
|
|
be used in configuration file lines using the syntax <code>${VAR}</code>.
|
|
If "VAR" is the name of a valid variable, the value of that variable is
|
|
substituted into that spot in the configuration file line, and processing
|
|
continues as if that text were found directly in the configuration file.
|
|
Variables defined with <directive module="core">Define</directive> take
|
|
precedence over shell environment variables.
|
|
If the "VAR" variable is not found, the characters <code>${VAR}</code>
|
|
are left unchanged, and a warning is logged.
|
|
Variable names may not contain colon ":" characters, to avoid clashes with
|
|
<directive module="mod_rewrite">RewriteMap</directive>'s syntax.</p>
|
|
|
|
<p>Only shell environment variables defined before the server is started
|
|
can be used in expansions. Environment variables defined in the
|
|
configuration file itself, for example with <directive
|
|
module="mod_env">SetEnv</directive>, take effect too late to be used for
|
|
expansions in the configuration file.</p>
|
|
|
|
<p>The maximum length of a line in normal configuration files, after
|
|
variable substitution and joining any continued lines, is approximately
|
|
16 MiB. In <a href="configuring.html#htaccess">.htaccess files</a>, the
|
|
maximum length is 8190 characters.</p>
|
|
|
|
<p>You can check your configuration files for syntax errors
|
|
without starting the server by using <code>apachectl
|
|
configtest</code> or the <code>-t</code> command line
|
|
option.</p>
|
|
|
|
<p>You can use <module>mod_info</module>'s <code>-DDUMP_CONFIG</code> to
|
|
dump the configuration with all included files and environment
|
|
variables resolved and all comments and non-matching
|
|
<directive module="core" type="section">IfDefine</directive> and
|
|
<directive module="core" type="section">IfModule</directive> sections
|
|
removed. However, the output does not reflect the merging or overriding
|
|
that may happen for repeated directives.</p>
|
|
</section>
|
|
|
|
<section id="modules">
|
|
<title>Modules</title>
|
|
|
|
<related>
|
|
<modulelist>
|
|
<module>mod_so</module>
|
|
</modulelist>
|
|
<directivelist>
|
|
<directive module="core" type="section">IfModule</directive>
|
|
<directive module="mod_so">LoadModule</directive>
|
|
</directivelist>
|
|
</related>
|
|
|
|
<p>httpd is a modular server. This implies that only the most
|
|
basic functionality is included in the core server. Extended
|
|
features are available through <a
|
|
href="mod/">modules</a> which can be loaded
|
|
into httpd. By default, a <a
|
|
href="mod/module-dict.html#Status">base</a> set of modules is
|
|
included in the server at compile-time. If the server is
|
|
compiled to use <a href="dso.html">dynamically loaded</a>
|
|
modules, then modules can be compiled separately and added at
|
|
any time using the <directive module="mod_so">LoadModule</directive>
|
|
directive.
|
|
Otherwise, httpd must be recompiled to add or remove modules.
|
|
Configuration directives may be included conditional on a
|
|
presence of a particular module by enclosing them in an <directive
|
|
module="core" type="section">IfModule</directive> block. However,
|
|
<directive type="section">IfModule</directive> blocks are not
|
|
required, and in some cases may mask the fact that you're missing an
|
|
important module.</p>
|
|
|
|
<p>To see which modules are currently compiled into the server,
|
|
you can use the <code>-l</code> command line option. You can also
|
|
see what modules are loaded dynamically using the <code>-M</code>
|
|
command line option.</p>
|
|
</section>
|
|
|
|
<section id="scope">
|
|
<title>Scope of Directives</title>
|
|
|
|
<related>
|
|
<directivelist>
|
|
<directive module="core" type="section">Directory</directive>
|
|
<directive module="core" type="section">DirectoryMatch</directive>
|
|
<directive module="core" type="section">Files</directive>
|
|
<directive module="core" type="section">FilesMatch</directive>
|
|
<directive module="core" type="section">Location</directive>
|
|
<directive module="core" type="section">LocationMatch</directive>
|
|
<directive module="core" type="section">VirtualHost</directive>
|
|
</directivelist>
|
|
</related>
|
|
|
|
<p>Directives placed in the main configuration files apply to
|
|
the entire server. If you wish to change the configuration for
|
|
only a part of the server, you can scope your directives by
|
|
placing them in <directive module="core"
|
|
type="section">Directory</directive>, <directive module="core"
|
|
type="section">DirectoryMatch</directive>, <directive module="core"
|
|
type="section">Files</directive>, <directive module="core"
|
|
type="section">FilesMatch</directive>, <directive module="core"
|
|
type="section">Location</directive>, and <directive module="core"
|
|
type="section">LocationMatch</directive>
|
|
sections. These sections limit the application of the
|
|
directives which they enclose to particular filesystem
|
|
locations or URLs. They can also be nested, allowing for very
|
|
fine grained configuration.</p>
|
|
|
|
<p>httpd has the capability to serve many different websites
|
|
simultaneously. This is called <a href="vhosts/">Virtual
|
|
Hosting</a>. Directives can also be scoped by placing them
|
|
inside <directive module="core" type="section">VirtualHost</directive>
|
|
sections, so that they will only apply to requests for a
|
|
particular website.</p>
|
|
|
|
<p>Although most directives can be placed in any of these
|
|
sections, some directives do not make sense in some contexts.
|
|
For example, directives controlling process creation can only
|
|
be placed in the main server context. To find which directives
|
|
can be placed in which sections, check the <a
|
|
href="mod/directive-dict.html#Context">Context</a> of the
|
|
directive. For further information, we provide details on <a
|
|
href="sections.html">How Directory, Location and Files sections
|
|
work</a>.</p>
|
|
</section>
|
|
|
|
<section id="htaccess">
|
|
<title>.htaccess Files</title>
|
|
|
|
<related>
|
|
<directivelist>
|
|
<directive module="core">AccessFileName</directive>
|
|
<directive module="core">AllowOverride</directive>
|
|
</directivelist>
|
|
</related>
|
|
|
|
<p>httpd allows for decentralized management of configuration
|
|
via special files placed inside the web tree. The special files
|
|
are usually called <code>.htaccess</code>, but any name can be
|
|
specified in the <directive module="core">AccessFileName</directive>
|
|
directive. Directives placed in <code>.htaccess</code> files
|
|
apply to the directory where you place the file, and all
|
|
sub-directories. The <code>.htaccess</code> files follow the
|
|
same syntax as the main configuration files. Since
|
|
<code>.htaccess</code> files are read on every request, changes
|
|
made in these files take immediate effect.</p>
|
|
|
|
<p>To find which directives can be placed in
|
|
<code>.htaccess</code> files, check the <a
|
|
href="mod/directive-dict.html#Context">Context</a> of the
|
|
directive. The server administrator further controls what
|
|
directives may be placed in <code>.htaccess</code> files by
|
|
configuring the <directive module="core">AllowOverride</directive>
|
|
directive in the main configuration files.</p>
|
|
|
|
<p>For more information on <code>.htaccess</code> files, see
|
|
the <a href="howto/htaccess.html">.htaccess tutorial</a>.</p>
|
|
</section>
|
|
</manualpage>
|