<?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>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>httpd - Apache Hypertext Transfer Protocol Server - 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 href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/programs/httpd.html" rel="canonical" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.0</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.0</a> &gt; <a href="./">Programs</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
            <p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p>
        <ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/programs/httpd.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>httpd - Apache Hypertext Transfer Protocol Server</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/programs/httpd.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../ko/programs/httpd.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/httpd.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>

     <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 <code class="program"><a href="../programs/apachectl.html">apachectl</a></code> 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>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Synopsis</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
</ul><h3>See also</h3><ul class="seealso"><li><a href="../invoking.html">Starting Apache</a></li><li><a href="../stopping.html">Stopping Apache</a></li><li><a href="../configuring.html">Configuration Files</a></li><li><a href="../platform/">Platform-specific Documentation</a></li><li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></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="synopsis" id="synopsis">Synopsis</a></h2>
     <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 ]
     [ -<strong>R</strong> <var>directory</var> ] [ -<strong>h</strong> ]
     [ -<strong>l</strong> ] [ -<strong>L</strong> ] [ -<strong>S</strong> ]
     [ -<strong>t</strong> ] [ -<strong>v</strong> ] [ -<strong>V</strong> ]
     [ -<strong>X</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>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="options" id="options">Options</a></h2>

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

<dd>Set the initial value for the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> 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 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. The default is
<code>conf/httpd.conf</code>.</dd>

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

<dd>Signals <code>httpd</code> to start, restart, or stop.  See <a href="../stopping.html">Stopping Apache</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
<code class="directive"><a href="../mod/core.html#ifdefine">&lt;IfDefine&gt;</a></code> sections
in the configuration files to conditionally skip or process
commands at server startup and restart.</dd>

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

<dd>Sets the <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> 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>-R <var>directory</var></code></dt>

<dd>When the server is compiled using the <code>SHARED_CORE</code>
rule, this specifies the <var>directory</var> for the shared
object files.</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 <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> directive.</dd>

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

<dd>Output a list of directives together with expected arguments and
places where the directive is valid.</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></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).  If -D
<var>DUMP</var>_<var>VHOSTS </var>is also set, details of the virtual host
configuration will be printed.</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 as a Windows NT service; change startup options for
the Apache service; and uninstall the Apache service.</dd>

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

<dd>The <var>name</var> of the Apache 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>

</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/programs/httpd.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../ko/programs/httpd.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/httpd.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</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="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
</body></html>