.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.\" DO NOT EDIT! Generated from XML source.
.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "HTTPD" 8 "2018-07-06" "Apache HTTP Server" "httpd"

.SH NAME
httpd \- Apache Hypertext Transfer Protocol Server

.SH "SYNOPSIS"
 
.PP
\fB\fBhttpd\fR [ -\fBd\fR \fIserverroot\fR ] [ -\fBf\fR \fIconfig\fR ] [ -\fBC\fR \fIdirective\fR ] [ -\fBc\fR \fIdirective\fR ] [ -\fBD\fR \fIparameter\fR ] [ -\fBe\fR \fIlevel\fR ] [ -\fBE\fR \fIfile\fR ] [ \fB-k\fR start|restart|graceful|stop|graceful-stop ] [ -\fBh\fR ] [ -\fBl\fR ] [ -\fBL\fR ] [ -\fBS\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBV\fR ] [ -\fBX\fR ] [ -\fBM\fR ] [ -\fBT\fR ] \fR
 
.PP
On Windows systems, the following additional arguments are available:
 
.PP
\fB\fBhttpd\fR [ -\fBk\fR install|config|uninstall ] [ -\fBn\fR \fIname\fR ] [ -\fBw\fR ]\fR
 

.SH "SUMMARY"
 
.PP
\fBhttpd\fR 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\&.
 
.PP
In general, \fBhttpd\fR should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, 2000 and XP and as a console application on Windows 9x and ME\&.
 

.SH "OPTIONS"
 
 
.TP
\fB-d \fIserverroot\fR\fR
Set the initial value for the ServerRoot directive to \fIserverroot\fR\&. This can be overridden by the ServerRoot directive in the configuration file\&. The default is \fB/usr/local/apache2\fR\&.  
.TP
\fB-f \fIconfig\fR\fR
Uses the directives in the file \fIconfig\fR on startup\&. If \fIconfig\fR does not begin with a /, then it is taken to be a path relative to the ServerRoot\&. The default is \fBconf/httpd\&.conf\fR\&.  
.TP
\fB-k \fBstart|restart|graceful|stop|graceful-stop\fR\fR
Signals \fBhttpd\fR to start, restart, or stop\&. See Stopping Apache httpd for more information\&.  
.TP
\fB-C \fIdirective\fR\fR
Process the configuration \fIdirective\fR before reading config files\&.  
.TP
\fB-c \fIdirective\fR\fR
Process the configuration \fIdirective\fR after reading config files\&.  
.TP
\fB-D \fIparameter\fR\fR
Sets a configuration \fIparameter \fRwhich can be used with <IfDefine> 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 \fB-DNO_DETACH\fR (prevent the parent from forking) and \fB-DFOREGROUND\fR (prevent the parent from calling \fBsetsid()\fR et al)\&.  
.TP
\fB-e \fIlevel\fR\fR
Sets the LogLevel to \fIlevel\fR during server startup\&. This is useful for temporarily increasing the verbosity of the error messages to find problems during startup\&.  
.TP
\fB-E \fIfile\fR\fR
Send error messages during server startup to \fIfile\fR\&.  
.TP
\fB-h\fR
Output a short summary of available command line options\&.  
.TP
\fB-l\fR
Output a list of modules compiled into the server\&. This will \fBnot\fR list dynamically loaded modules included using the LoadModule directive\&.  
.TP
\fB-L\fR
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\&.  
.TP
\fB-M\fR
Dump a list of loaded Static and Shared Modules\&.  
.TP
\fB-S\fR
Show the settings as parsed from the config file (currently only shows the virtualhost settings)\&.  
.TP
\fB-T\fR (Available in 2\&.3\&.8 and later)
Skip document root check at startup/restart\&.  
.TP
\fB-t\fR
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 \fIDUMP\fR_\fIVHOSTS \fRis also set, details of the virtual host configuration will be printed\&. If -D \fIDUMP\fR_\fIMODULES \fR is set, all loaded modules will be printed\&.  
.TP
\fB-v\fR
Print the version of \fBhttpd\fR, and then exit\&.  
.TP
\fB-V\fR
Print the version and build parameters of \fBhttpd\fR, and then exit\&.  
.TP
\fB-X\fR
Run httpd in debug mode\&. Only one worker will be started and the server will not detach from the console\&.  
 
.PP
The following arguments are available only on the Windows platform:
 
 
.TP
\fB-k install|config|uninstall\fR
Install Apache httpd as a Windows NT service; change startup options for the Apache httpd service; and uninstall the Apache httpd service\&.  
.TP
\fB-n \fIname\fR\fR
The \fIname\fR of the Apache httpd service to signal\&.  
.TP
\fB-w\fR
Keep the console window open on error so that the error message can be read\&.  
 
