<title>ab - Apache HTTP server benchmarking tool</title>
<summary>
- <p><code>ab</code> is a tool for benchmarking your Apache Hypertext
+ <p><program>ab</program> is a tool for benchmarking your Apache Hypertext
Transfer Protocol (HTTP) server. It is designed to give you an impression
of how your current Apache installation performs. This especially shows
you how many requests per second your Apache installation is capable of
needed).</dd>
<dt><code>-q</code></dt>
- <dd>When processing more than 150 requests, <code>ab</code> outputs a
+ <dd>When processing more than 150 requests, <program>ab</program> outputs a
progress count on <code>stderr</code> every 10% or 100 requests or so. The
<code>-q</code> flag will suppress these messages.</dd>
</section>
<section id="output"><title>Output</title>
- <p>The following list describes the values returned by <code>ab</code>:
+ <p>The following list describes the values returned by <program>ab</program>:
</p>
<dl>
<p>It does not implement HTTP/1.x fully; only accepts some 'expected' forms
of responses. The rather heavy use of <code>strstr(3)</code> shows up top
in profile, which might indicate a performance problem; <em>i.e.</em>, you
- would measure the <code>ab</code> performance rather than the server's.</p>
+ would measure the <program>ab</program> performance rather than the server's.</p>
</section>
<title>apachectl - Apache HTTP Server Control Interface</title>
<summary>
- <p><code>apachectl</code> is a front end to the Apache HyperText
+ <p><program>apachectl</program> is a front end to the Apache HyperText
Transfer Protocol (HTTP) server. It is designed to help the
administrator control the functioning of the Apache
<program>httpd</program> daemon.</p>
- <p>The <code>apachectl</code> script can operate in two modes.
+ <p>The <program>apachectl</program> script can operate in two modes.
First, it can act as a simple front-end to the <program>httpd</program>
command that simply sets any necessary environment variables and
then invokes <program>httpd</program>, passing through any command line
- arguments. Second, <code>apachectl</code> can act as a SysV init
+ arguments. Second, <program>apachectl</program> can act as a SysV init
script, taking simple one-word arguments like <code>start</code>,
<code>restart</code>, and <code>stop</code>, and translating them
into appropriate signals to <program>httpd</program>.</p>
<p>If your Apache installation uses non-standard paths, you will
- need to edit the <code>apachectl</code> script to set the
+ need to edit the <program>apachectl</program> script to set the
appropriate paths to the <program>httpd</program> binary. You can also
specify any necessary <program>httpd</program> command line arguments.
See the comments in the script for details.</p>
- <p>The <code>apachectl</code> script returns a 0 exit value on
+ <p>The <program>apachectl</program> script returns a 0 exit value on
success, and >0 if an error occurs. For more details, view
the comments in the script.</p>
</summary>
<section id="synopsis"><title>Synopsis</title>
-<p>When acting in pass-through mode, <code>apachectl</code> can take
+<p>When acting in pass-through mode, <program>apachectl</program> can take
all the arguments available for the <program>httpd</program>
binary.</p>
<p><code><strong>apachectl</strong> [ <var>httpd-argument</var> ]</code></p>
-<p>When acting in SysV init mode, <code>apachectl</code> takes simple,
+<p>When acting in SysV init mode, <program>apachectl</program> takes simple,
one-word commands, defined below.</p>
<p><code><strong>apachectl</strong> <var>command</var></code></p>
<title>apxs - APache eXtenSion tool</title>
<summary>
- <p><code>apxs</code> is a tool for building and installing extension
+ <p><program>apxs</program> is a tool for building and installing extension
modules for the Apache HyperText Transfer Protocol (HTTP) server. This is
achieved by building a dynamic shared object (DSO) from one or more source
or object <var>files</var> which then can be loaded into the Apache server
<p>So to use this extension mechanism your platform has to support the DSO
feature and your Apache <program>httpd</program> binary has to be built with the
- <module>mod_so</module> module. The <code>apxs</code> tool automatically
+ <module>mod_so</module> module. The <program>apxs</program> tool automatically
complains if this is not the case. You can check this yourself by manually
running the command</p>
<p>The module <module>mod_so</module> should be part of the displayed list.
If these requirements are fulfilled you can easily extend your Apache
server's functionality by installing your own modules with the DSO mechanism
- by the help of this <code>apxs</code> tool:</p>
+ by the help of this <program>apxs</program> tool:</p>
<example>
<highlight language="sh">
</example>
<p>The arguments <var>files</var> can be any C source file (.c), a object
- file (.o) or even a library archive (.a). The <code>apxs</code> tool
+ file (.o) or even a library archive (.a). The <program>apxs</program> tool
automatically recognizes these extensions and automatically used the C
source files for compilation while just using the object and archive files
for the linking phase. But when using such pre-compiled objects make sure
they are compiled for position independent code (PIC) to be able to use them
for a dynamically loaded shared object. For instance with GCC you always
just have to use <code>-fpic</code>. For other C compilers consult its
- manual page or at watch for the flags <code>apxs</code> uses to compile the
+ manual page or at watch for the flags <program>apxs</program> uses to compile the
object files.</p>
<p>For more details about DSO support in Apache read the documentation of
<dd>This explicitly sets the module name for the <code>-i</code> (install)
and <code>-g</code> (template generation) option. Use this to explicitly
specify the module name. For option <code>-g</code> this is required, for
- option <code>-i</code> the <code>apxs</code> tool tries to determine the
+ option <code>-i</code> the <program>apxs</program> tool tries to determine the
name from the source or (as a fallback) at least by guessing it from the
filename.</dd>
</dl>
<p>Then you have to update the Apache configuration by making sure a
<directive module="mod_so">LoadModule</directive> directive is present to
- load this shared object. To simplify this step <code>apxs</code> provides
+ load this shared object. To simplify this step <program>apxs</program> provides
an automatic way to install the shared object in its "modules" directory
and updating the <code>httpd.conf</code> file accordingly. This can be
achieved by running:</p>
<title>dbmmanage - Manage user authentication files in DBM format</title>
<summary>
- <p><code>dbmmanage</code> is used to create and update the DBM format files
+ <p><program>dbmmanage</program> is used to create and update the DBM format files
used to store usernames and password for basic authentication of HTTP users
via <module>mod_authn_dbm</module>.
Resources available from the Apache HTTP server can be restricted to just
- the users listed in the files created by <code>dbmmanage</code>. This
+ the users listed in the files created by <program>dbmmanage</program>. This
program can only be used when the usernames are stored in a DBM file. To
use a flat-file database see <program>htpasswd</program>.</p>
may exist on your system. The three primary examples are SDBM, NDBM, the GNU
project's GDBM, and Berkeley DB 2. Unfortunately, all these libraries use
different file formats, and you must make sure that the file format used
- by <var>filename</var> is the same format that <code>dbmmanage</code>
- expects to see. <code>dbmmanage</code> currently has no way of determining
+ by <var>filename</var> is the same format that <program>dbmmanage</program>
+ expects to see. <program>dbmmanage</program> currently has no way of determining
what type of DBM file it is looking at. If used against the wrong format,
will simply return nothing, or may create a different DBM file with a
different name, or at worst, it may corrupt the DBM file if you were
attempting to write to it.</p>
- <p><code>dbmmanage</code> has a list of DBM format preferences, defined by
+ <p><program>dbmmanage</program> has a list of DBM format preferences, defined by
the <code>@AnyDBM::ISA</code> array near the beginning of the program. Since
we prefer the Berkeley DB 2 file format, the order in which
- <code>dbmmanage</code> will look for system libraries is Berkeley DB 2,
+ <program>dbmmanage</program> will look for system libraries is Berkeley DB 2,
then NDBM, then GDBM and then SDBM. The first library found will be the
- library <code>dbmmanage</code> will attempt to use for all DBM file
+ library <program>dbmmanage</program> will attempt to use for all DBM file
transactions. This ordering is slightly different than the standard
<code>@AnyDBM::ISA</code> ordering in Perl, as well as the ordering used by
the simple <code>dbmopen()</code> call in Perl, so if you use any other
<title>htcacheclean - Clean up the disk cache</title>
<summary>
- <p><code>htcacheclean</code> is used to keep the size of
+ <p><program>htcacheclean</program> is used to keep the size of
<module>mod_cache_disk</module>'s storage within a given size limit, or
limit on inodes in use. This tool can run either manually or in daemon mode.
When running in daemon mode, it sleeps in the background and checks the cache
<dt><code>-n</code></dt>
<dd>Be nice. This causes slower processing in favour of other
- processes. <code>htcacheclean</code> will sleep from time to time
+ processes. <program>htcacheclean</program> will sleep from time to time
so that (a) the disk IO will be delayed and (b) the kernel can schedule
other processes in the meantime.</dd>
</section>
<section id="delete"><title>Deleting a specific URL</title>
- <p>If <code>htcacheclean</code> is passed one or more URLs, each URL will
+ <p>If <program>htcacheclean</program> is passed one or more URLs, each URL will
be deleted from the cache. If multiple variants of an URL exists, all
variants would be deleted.</p>
<section id="list"><title>Listing URLs in the Cache</title>
<p>By passing the <code>-a</code> or <code>-A</code> options to
- <code>htcacheclean</code>, the URLs within the cache will be listed
+ <program>htcacheclean</program>, the URLs within the cache will be listed
as they are found, one URL per line. The <code>-A</code> option
dumps the full cache entry after the URL, with fields in the
following order:</p>
</section>
<section id="exit"><title>Exit Status</title>
- <p><code>htcacheclean</code> returns a zero status ("true") if all
+ <p><program>htcacheclean</program> returns a zero status ("true") if all
operations were successful, <code>1</code> otherwise. If an URL is
specified, and the URL was cached and successfully removed,
<code>0</code> is returned, <code>2</code> otherwise. If an error
<title>htdbm - Manipulate DBM password databases</title>
<summary>
- <p><code>htdbm</code> is used to manipulate the DBM format files used to
+ <p><program>htdbm</program> is used to manipulate the DBM format files used to
store usernames and password for basic authentication of HTTP users via
<module>mod_authn_dbm</module>. See the <program>dbmmanage</program>
documentation for more information about these DBM files.</p>
This algorithm is <strong>insecure</strong> by today's standards.</dd>
<dt><code>-p</code></dt>
- <dd>Use plaintext passwords. Though <code>htdbm</code> will support
+ <dd>Use plaintext passwords. Though <program>htdbm</program> will support
creation on all platforms, the <program>httpd</program> daemon will
only accept plain text passwords on Windows and Netware.</dd>
SDBM, NDBM, GNU GDBM, and Berkeley/Sleepycat DB 2/3/4. Unfortunately,
all these libraries use different file formats, and you must make sure
that the file format used by <var>filename</var> is the same format that
- <code>htdbm</code> expects to see. <code>htdbm</code> currently has
+ <program>htdbm</program> expects to see. <program>htdbm</program> currently has
no way of determining what type of DBM file it is looking at. If used
against the wrong format, will simply return nothing, or may create a
different DBM file with a different name, or at worst, it may corrupt
</section>
<section id="exit"><title>Exit Status</title>
- <p><code>htdbm</code> returns a zero status ("true") if the username and
+ <p><program>htdbm</program> returns a zero status ("true") if the username and
password have been successfully added or updated in the DBM File.
- <code>htdbm</code> returns <code>1</code> if it encounters some problem
+ <program>htdbm</program> returns <code>1</code> if it encounters some problem
accessing files, <code>2</code> if there was a syntax problem with the
command line, <code>3</code> if the password was entered interactively and
the verification entry didn't match, <code>4</code> if its operation was
is prompted for the password. If executed on a Windows system, the password
will be hashed using the modified Apache MD5 algorithm; otherwise, the
system's <code>crypt()</code> routine will be used. If the file does not
- exist, <code>htdbm</code> will do nothing except return an error.</p>
+ exist, <program>htdbm</program> will do nothing except return an error.</p>
<example>
htdbm -c /home/doe/public_html/.htdbm jane
<p>Creates a new file and stores a record in it for user <code>jane</code>.
The user is prompted for the password. If the file exists and cannot be
- read, or cannot be written, it is not altered and <code>htdbm</code>
+ read, or cannot be written, it is not altered and <program>htdbm</program>
will display a message and return an error status.</p>
<example>
<p>To convert an existing text file <code>htpasswd</code>-generated
password file to a <code>dbm</code> file, use <code>awk</code> to
- feed each line of that file into <code>htdbm</code>:</p>
+ feed each line of that file into <program>htdbm</program>:</p>
<example>
htdbm -cbp passwords.dbm bogus bogus
</section>
<section id="security"><title>Security Considerations</title>
- <p>Web password files such as those managed by <code>htdbm</code> should
+ <p>Web password files such as those managed by <program>htdbm</program> should
<em>not</em> be within the Web server's URI space -- that is, they should
not be fetchable with a browser.</p>
<section id="restrictions"><title>Restrictions</title>
<p>On the Windows platform, passwords hashed with
- <code>htdbm</code> are limited to no more than <code>255</code>
+ <program>htdbm</program> are limited to no more than <code>255</code>
characters in length. Longer passwords will be truncated to 255
characters.</p>
- <p>The MD5 algorithm used by <code>htdbm</code> is specific to the Apache
+ <p>The MD5 algorithm used by <program>htdbm</program> is specific to the Apache
software; passwords hashed using it will not be usable with other Web
servers.</p>
<title>htdigest - manage user files for digest authentication</title>
<summary>
- <p><code>htdigest</code> is used to create and update the flat-files used
+ <p><program>htdigest</program> is used to create and update the flat-files used
to store usernames, realm and password for digest authentication of HTTP
users. Resources available from the Apache HTTP server can be restricted
- to just the users listed in the files created by <code>htdigest</code>.</p>
+ to just the users listed in the files created by <program>htdigest</program>.</p>
<p>This manual page only lists the command line arguments. For details of
the directives necessary to configure digest authentication in
<title>htpasswd - Manage user files for basic authentication</title>
<summary>
- <p><code>htpasswd</code> is used to create and update the flat-files used to
+ <p><program>htpasswd</program> is used to create and update the flat-files used to
store usernames and password for basic authentication of HTTP users. If
- <code>htpasswd</code> cannot access a file, such as not being able to write
+ <program>htpasswd</program> cannot access a file, such as not being able to write
to the output file or not being able to read the file in order to update it,
it returns an error status and makes no changes.</p>
<p>Resources available from the Apache HTTP server can be restricted to
- just the users listed in the files created by <code>htpasswd</code>. This
+ just the users listed in the files created by <program>htpasswd</program>. This
program can only manage usernames and passwords stored in a flat-file. It
can hash and display password information for use in other types of data
stores, though. To use a DBM database see <program>dbmmanage</program> or
<program>htdbm</program>.</p>
- <p><code>htpasswd</code> hashes passwords using either bcrypt, a
+ <p><program>htpasswd</program> hashes passwords using either bcrypt, a
version of MD5 modified for Apache, SHA-1, or the system's
<code>crypt()</code> routine. SHA-2-based hashes (SHA-256 and
SHA-512) are supported for <code>crypt()</code>. Files managed by
- <code>htpasswd</code> may contain a mixture of different encoding
+ <program>htpasswd</program> may contain a mixture of different encoding
types of passwords; some user records may have bcrypt or
MD5-hashed passwords while others in the same file may have
passwords hashed with <code>crypt()</code>.</p>
today's standards.</dd>
<dt><code>-p</code></dt>
- <dd>Use plaintext passwords. Though <code>htpasswd</code> will support
+ <dd>Use plaintext passwords. Though <program>htpasswd</program> will support
creation on all platforms, the <program>httpd</program> daemon will
only accept plain text passwords on Windows and Netware.</dd>
</section>
<section id="exit"><title>Exit Status</title>
- <p><code>htpasswd</code> returns a zero status ("true") if the username and
+ <p><program>htpasswd</program> returns a zero status ("true") if the username and
password have been successfully added or updated in the
- <var>passwdfile</var>. <code>htpasswd</code> returns <code>1</code> if it
+ <var>passwdfile</var>. <program>htpasswd</program> returns <code>1</code> if it
encounters some problem accessing files, <code>2</code> if there was a
syntax problem with the command line, <code>3</code> if the password was
entered interactively and the verification entry didn't match,
<p>Adds or modifies the password for user <code>jsmith</code>. The user
is prompted for the password. The password will be hashed using the
modified Apache MD5 algorithm. If the file does not exist,
- <code>htpasswd</code> will do nothing except return an error.</p>
+ <program>htpasswd</program> will do nothing except return an error.</p>
<example>
htpasswd -c /home/doe/public_html/.htpasswd jane
<p>Creates a new file and stores a record in it for user <code>jane</code>.
The user is prompted for the password. If the file exists and cannot be
- read, or cannot be written, it is not altered and <code>htpasswd</code>
+ read, or cannot be written, it is not altered and <program>htpasswd</program>
will display a message and return an error status.</p>
<example>
</section>
<section id="security"><title>Security Considerations</title>
- <p>Web password files such as those managed by <code>htpasswd</code> should
+ <p>Web password files such as those managed by <program>htpasswd</program> should
<em>not</em> be within the Web server's URI space -- that is, they should
not be fetchable with a browser.</p>
<section id="restrictions"><title>Restrictions</title>
<p>On the Windows platform, passwords hashed with
- <code>htpasswd</code> are limited to no more than <code>255</code>
+ <program>htpasswd</program> are limited to no more than <code>255</code>
characters in length. Longer passwords will be truncated to 255
characters.</p>
- <p>The MD5 algorithm used by <code>htpasswd</code> is specific to the Apache
+ <p>The MD5 algorithm used by <program>htpasswd</program> is specific to the Apache
software; passwords hashed using it will not be usable with other Web
servers.</p>
<title>httpd - Apache Hypertext Transfer Protocol Server</title>
<summary>
- <p><code>httpd</code> is the Apache HyperText Transfer Protocol
+ <p><program>httpd</program> 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,
+ <p>In general, <program>httpd</program> 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,
<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
+<dd>Signals <program>httpd</program> 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>
<dt><code>-v</code></dt>
-<dd>Print the version of <code>httpd</code>, and then exit.</dd>
+<dd>Print the version of <program>httpd</program>, and then exit.</dd>
<dt><code>-V</code></dt>
-<dd>Print the version and build parameters of <code>httpd</code>, and
+<dd>Print the version and build parameters of <program>httpd</program>, and
then exit.</dd>
<dt><code>-X</code></dt>
<title>httxt2dbm - Generate dbm files for use with RewriteMap</title>
<summary>
- <p><code>httxt2dbm</code> is used to generate dbm files from text input, for
+ <p><program>httxt2dbm</program> is used to generate dbm files from text input, for
use in <directive module="mod_rewrite">RewriteMap</directive> with the
<code>dbm</code> map type.</p>
log files</title>
<summary>
- <p><code>logresolve</code> is a post-processing program to
+ <p><program>logresolve</program> is a post-processing program to
resolve IP-addresses in Apache's access logfiles. To minimize
impact on your nameserver, logresolve has its very own internal
hash-table cache. This means that each IP number will only be
<dt><code>-c</code></dt>
-<dd>This causes <code>logresolve</code> to apply some DNS checks:
+<dd>This causes <program>logresolve</program> to apply some DNS checks:
after finding the hostname from the IP address, it looks up the IP
addresses for the hostname and checks that one of these matches the
original address.</dd>
<title>rotatelogs - Piped logging program to rotate Apache logs</title>
<summary>
- <p><code>rotatelogs</code> is a simple program for use in
+ <p><program>rotatelogs</program> is a simple program for use in
conjunction with Apache's piped logfile feature. It supports
rotation based on a time interval or maximum size of the log.</p>
</summary>
the log continuously across rotations using a command like
<code>tail -F linkname</code>.</p>
<p>If the linkname is not an absolute
-path, it is relative to <code>rotatelogs</code>' working directory,
+path, it is relative to <program>rotatelogs</program>' working directory,
which is the <directive module="core">ServerRoot</directive> when
-<code>rotatelogs</code> is run by the server.
+<program>rotatelogs</program> is run by the server.
</p>
</dd>
<dt><code>-p</code> <var>program</var></dt>
-<dd><p>If given, <code>rotatelogs</code> will execute the specified
+<dd><p>If given, <program>rotatelogs</program> will execute the specified
program every time a new log file is opened. The filename of the
newly opened file is passed as the first argument to the program. If
executing after a rotation, the old log file is passed as the second
argument.</p>
-<p> <code>rotatelogs</code> does not wait for the specified
+<p> <program>rotatelogs</program> does not wait for the specified
program to terminate before continuing to operate, and will not log
any error code returned on termination.</p>
<p>The spawned program uses the
<dt><code>-f</code></dt>
<dd>Causes the logfile to be opened immediately, as soon as
-<code>rotatelogs</code> starts, instead of waiting for the
+<program>rotatelogs</program> starts, instead of waiting for the
first logfile entry to be read (for non-busy sites, there may be
a substantial delay between when the server is started
and when the first request is handled, meaning that the
same log file name would be produced and log rotation would keep
writing to the same file.</p>
<p>If the logfile is not an absolute
-path, it is relative to <code>rotatelogs</code>' working directory,
+path, it is relative to <program>rotatelogs</program>' working directory,
which is the <directive module="core">ServerRoot</directive> when
-<code>rotatelogs</code> is run by the server.
+<program>rotatelogs</program> is run by the server.
</p>
</dd>
<title>suexec - Switch user before executing external programs</title>
<summary>
- <p><code>suexec</code> is used by the Apache HTTP Server to switch
+ <p><program>suexec</program> is used by the Apache HTTP Server to switch
to another user before executing CGI programs. In order to achieve this,
it must run as <code>root</code>. Since the HTTP daemon normally doesn't
- run as <code>root</code>, the <code>suexec</code> executable needs the
+ run as <code>root</code>, the <program>suexec</program> executable needs the
setuid bit set and must be owned by <code>root</code>. It should never be
writable for any other person than <code>root</code>.</p>
<dt><code>-V</code></dt>
<dd>If you are <code>root</code>, this option displays the compile options of
-<code>suexec</code>. For security reasons all configuration options are
+<program>suexec</program>. For security reasons all configuration options are
changeable only at compile time.</dd>
</dl>