.\" 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-09-27" "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\&. If -D \fIDUMP\fR_\fICERTS \fR is set and mod_ssl is used, configured SSL certificates will be printed\&. If -D \fIDUMP\fR_\fICA\fR_\fI_CERTS \fR is set and mod_ssl is used, configured SSL CA certificates and configured directories containing SSL CA certificates 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\&.  
 
