<?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="httpd.xml.meta">
<parentdocument href="./">Programs</parentdocument>

  <title>httpd - Apache Hypertext Transfer Protocol Server</title>

<summary>
     <p><code>httpd</code> is the Apache HyperText Transfer Protocol
     (HTTP) server program.  It is designed to be run as a standalone
     daemon process. When used like this it will create a pool of
     child processes or threads to handle requests.</p>

     <p>In general, <code>httpd</code> should not be invoked directly,
     but rather should be invoked via <program>
     apachectl</program> on Unix-based systems or <a
     href="../platform/windows.html#winsvc">as a service on Windows NT,
     2000 and XP</a> and <a href="../platform/windows.html#wincons">as
     a console application on Windows 9x and ME</a>.</p>
</summary>

<seealso><a href="../invoking.html">Starting Apache httpd</a></seealso>
<seealso><a href="../stopping.html">Stopping Apache httpd</a></seealso>
<seealso><a href="../configuring.html">Configuration Files</a></seealso>
<seealso><a href="../platform/">Platform-specific Documentation</a></seealso>
<seealso><program>apachectl</program></seealso>

<section id="synopsis"><title>Synopsis</title>
     <p><code><strong>httpd</strong> [ -<strong>d</strong>
     <var>serverroot</var> ] [ -<strong>f</strong> <var>config</var> ]
     [ -<strong>C</strong> <var>directive</var> ] [ -<strong>c</strong>
     <var>directive</var> ] [ -<strong>D</strong> <var>parameter</var> ]
     [ -<strong>e</strong> <var>level</var> ] [ -<strong>E</strong>
     <var>file</var> ]
     [ <strong>-k</strong> start|restart|graceful|stop|graceful-stop ]
     [ -<strong>h</strong> ]
     [ -<strong>l</strong> ] [ -<strong>L</strong> ] [ -<strong>S</strong> ]
     [ -<strong>t</strong> ] [ -<strong>v</strong> ] [ -<strong>V</strong> ]
     [ -<strong>X</strong> ] [ -<strong>M</strong> ] [ -<strong>T</strong> ]
     </code></p>

     <p>On <a href="../platform/windows.html">Windows systems</a>, the
     following additional arguments are available:</p>

     <p><code><strong>httpd</strong> [ -<strong>k</strong>
     install|config|uninstall ] [ -<strong>n</strong> <var>name</var> ]
     [ -<strong>w</strong> ]</code></p>
</section>

<section id="options"><title>Options</title>

<dl>
<dt><code>-d <var>serverroot</var></code></dt>

<dd>Set the initial value for the <directive
module="core">ServerRoot</directive> directive to
<var>serverroot</var>.  This can be overridden by the ServerRoot
directive in the configuration file. The default is
<code>/usr/local/apache2</code>.</dd>

<dt><code>-f <var>config</var></code></dt>

<dd>Uses the directives in the file <var>config</var> on startup. If
<var>config</var> does not begin with a /, then it is taken to be a
path relative to the <directive
module="core">ServerRoot</directive>. The default is
<code>conf/httpd.conf</code>.</dd>

<dt><code>-k <code>start|restart|graceful|stop|graceful-stop</code></code></dt>

<dd>Signals <code>httpd</code> to start, restart, or stop.  See <a
href="../stopping.html">Stopping Apache httpd</a> for more information.</dd>

<dt><code>-C <var>directive</var></code></dt>

<dd>Process the configuration <var>directive</var> before reading
config files.</dd>

<dt><code>-c <var>directive</var></code></dt>

<dd>Process the configuration <var>directive</var> after reading config
files.</dd>

<dt><code>-D <var>parameter</var></code></dt>

<dd>Sets a configuration <var>parameter </var>which can be used with
<directive type="section" module="core">IfDefine</directive> sections
in the configuration files to conditionally skip or process commands
at server startup and restart. Also can be used to set certain
less-common startup parameters including <code>-DNO_DETACH</code>
(prevent the parent from forking) and <code>-DFOREGROUND</code>
(prevent the parent from calling <code>setsid()</code> et al).</dd>

<dt><code>-e <var>level</var></code></dt>

<dd>Sets the <directive module="core">LogLevel</directive> to
<var>level</var> during server startup.  This is useful for
temporarily increasing the verbosity of the error messages to find
problems during startup.</dd>

<dt><code>-E <var>file</var></code></dt>

<dd>Send error messages during server startup to <var>file</var>.</dd>

<dt><code>-h</code></dt>

<dd>Output a short summary of available command line options.</dd>

<dt><code>-l</code></dt>

<dd>Output a list of modules compiled into the server.  This will
<strong>not</strong> list dynamically loaded modules included using
the <directive module="mod_so">LoadModule</directive> directive.</dd>

<dt><code>-L</code></dt>

<dd>Output a list of directives provided by static modules, together with expected arguments and
places where the directive is valid. Directives provided by shared modules are not listed.</dd>

<dt><code>-M</code></dt>

<dd>Dump a list of loaded Static and Shared Modules.</dd>

<dt><code>-S</code></dt>

<dd>Show the settings as parsed from the config file (currently only
shows the virtualhost settings).</dd>

<dt><code>-T</code> (Available in 2.3.8 and later)</dt>

<dd>Skip document root check at startup/restart.</dd>

<dt><code>-t</code></dt>

<dd>Run syntax tests for configuration files only.  The program
immediately exits after these syntax parsing tests with either a
return code of 0 (Syntax OK) or return code not equal to 0 (Syntax
Error). This option can be combined with various <var>-D
DUMP_...</var> arguments to print information about the configuration,
<a href="#dumpconf">as listed below</a>.</dd>

<dt><code>-v</code></dt>

<dd>Print the version of <code>httpd</code>, and then exit.</dd>

<dt><code>-V</code></dt>

<dd>Print the version and build parameters of <code>httpd</code>, and
then exit.</dd>

<dt><code>-X</code></dt>

<dd>Run httpd in debug mode.  Only one worker will be started and the
server will not detach from the console.</dd>

</dl>

<p>The following arguments are available only on the <a
href="../platform/windows.html">Windows platform</a>:</p>

<dl>

<dt><code>-k install|config|uninstall</code></dt>

<dd>Install Apache httpd as a Windows NT service; change startup options for
the Apache httpd service; and uninstall the Apache httpd service.</dd>

<dt><code>-n <var>name</var></code></dt>

<dd>The <var>name</var> of the Apache httpd service to signal.</dd>

<dt><code>-w</code></dt>

<dd>Keep the console window open on error so that the error message can
be read.</dd>

</dl>

</section>

<section id="dumpconf"><title>Dumping configuration data</title>

<p>The following options can be combined with <var>-t</var> to show
information about the configuration:</p>

<dl>
  <dt><var>-D DUMP_VHOSTS</var></dt> <dd>print details of the virtual
  host configuration.</dd>

  <dt><var>-D DUMP_MODULES</var></dt> <dd>print (human-readable)
  details of all loaded modules.</dd>

  <dt><var>-D DUMP_MODULES</var> <var>-D DUMP_MODULE_DATA</var></dt>
  <dd>print details of all loaded modules in a structured (TOML) format.</dd>

  <dt><var>-D DUMP_CERTS</var></dt>
  <dd>If <module>mod_ssl</module> is loaded, print details of
  configured SSL/TLS certificates.</dd>
</dl>
</section>

</manualpage>
