Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4 > Programs

# httpd - Apache Hypertext Transfer Protocol Server

`httpd` 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.

In general, `httpd` 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.

### See also

- Starting Apache httpd
- Stopping Apache httpd
- Configuration Files
- Platform-specific Documentation
- `apachectl`

## Synopsis

`httpd [ -d serverroot ] [ -f config ] [ -C directive ] [ -c directive ] [ -D parameter ] [ -e level ] [ -E file ] [ -k start|restart|graceful|stop|graceful-stop ] [ -h ] [ -l ] [ -L ] [ -S ] [ -t ] [ -v ] [ -V ] [ -X ] [ -M ] [ -T ]`

On Windows systems, the following additional arguments are available:

`httpd [ -k install|config|uninstall ] [ -n name ] [ -w ]`

## Options

`-d serverroot`
  Set the initial value for the `ServerRoot` directive to serverroot. This can be overridden by the ServerRoot directive in the configuration file. The default is `/usr/local/apache2`.
`-f config`
  Uses the directives in the file config on startup. If config does not begin with a /, then it is taken to be a path relative to the `ServerRoot`. The default is `conf/httpd.conf`.
`-k `start|restart|graceful|stop|graceful-stop``
  Signals `httpd` to start, restart, or stop. See Stopping Apache httpd for more information.
`-C directive`
  Process the configuration directive before reading config files.
`-c directive`
  Process the configuration directive after reading config files.
`-D parameter`
  Sets a configuration parameter which 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 `-DNO_DETACH` (prevent the parent from forking) and `-DFOREGROUND` (prevent the parent from calling `setsid()` et al).
`-e level`
  Sets the `LogLevel` to level during server startup. This is useful for temporarily increasing the verbosity of the error messages to find problems during startup.
`-E file`
  Send error messages during server startup to file.
`-h`
  Output a short summary of available command line options.
`-l`
  Output a list of modules compiled into the server. This will not list dynamically loaded modules included using the `LoadModule` directive.
`-L`
  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.
`-M`
  Dump a list of loaded Static and Shared Modules.
`-S`
  Show the settings as parsed from the config file (currently only shows the virtualhost settings).
`-T` (Available in 2.3.8 and later)
  Skip document root check at startup/restart.
`-t`
  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 DUMP_VHOSTS is also set, details of the virtual host configuration will be printed. If -D DUMP_MODULES is set, all loaded modules will be printed.
`-v`
  Print the version of `httpd`, and then exit.
`-V`
  Print the version and build parameters of `httpd`, and then exit.
`-X`
  Run httpd in debug mode. Only one worker will be started and the server will not detach from the console.

The following arguments are available only on the Windows platform:

`-k install|config|uninstall`
  Install Apache httpd as a Windows NT service; change startup options for the Apache httpd service; and uninstall the Apache httpd service.
`-n name`
  The name of the Apache httpd service to signal.
`-w`
  Keep the console window open on error so that the error message can be read.