| <?xml version='1.0' encoding='UTF-8' ?> |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?> |
| <!-- $LastChangedRevision$ --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="invoking.xml.meta"> |
| |
| <title>Starting Apache</title> |
| |
| <summary> |
| <p>On Windows, Apache is normally run as a service. |
| For details, see <a |
| href="platform/windows.html#winsvc">Running Apache as a Service</a>. |
| </p> |
| |
| <p>On Unix, the <program>httpd</program> program |
| is run as a daemon that executes continuously in the |
| background to handle requests. This document describes how |
| to invoke <program>httpd</program>.</p> |
| </summary> |
| |
| <seealso><a href="stopping.html">Stopping and Restarting</a></seealso> |
| <seealso><program>httpd</program></seealso> |
| <seealso><program>apachectl</program></seealso> |
| |
| <section id="startup"><title>How Apache Starts</title> |
| |
| <p>If the <directive module="mpm_common">Listen</directive> |
| specified in the configuration file is default of 80 (or any other |
| port below 1024), then it is necessary to have root privileges in |
| order to start apache, so that it can bind to this privileged |
| port. Once the server has started and performed a few preliminary |
| activities such as opening its log files, it will launch several |
| <em>child</em> processes which do the work of listening for and |
| answering requests from clients. The main <code>httpd</code> |
| process continues to run as the root user, but the child processes |
| run as a less privileged user. This is controlled by the selected |
| <a href="mpm.html">Multi-Processing Module</a>.</p> |
| |
| <p>The recommended method of invoking the <program>httpd</program> |
| executable is to use the <program>apachectl</program> control script. This |
| script sets certain environment variables that are necessary for |
| <program>httpd</program> to function correctly under some operating |
| systems, and then invokes the <program>httpd</program> binary. |
| <program>apachectl</program> will pass through any command line |
| arguments, so any <program>httpd</program> options may also be used with |
| <program>apachectl</program>. You may also directly edit the |
| <program>apachectl</program> script by changing the <code>HTTPD</code> |
| variable near the top to specify the correct location of the |
| <program>httpd</program> binary and any command-line arguments that you |
| wish to be <em>always</em> present.</p> |
| |
| <p>The first thing that <program>httpd</program> does when it is |
| invoked is to locate and read the <a |
| href="configuring.html">configuration file</a> |
| <code>httpd.conf</code>. The location of this file is set at |
| compile-time, but it is possible to specify its location at run |
| time using the <code>-f</code> command-line option as in</p> |
| |
| <example>/usr/local/apache2/bin/apachectl -f |
| /usr/local/apache2/conf/httpd.conf</example> |
| |
| <p>If all goes well during startup, the server will detach from |
| the terminal and the command prompt will return almost |
| immediately. This indicates that the server is up and running. |
| You can then use your browser to connect to the server and view |
| the test page in the <directive |
| module="core">DocumentRoot</directive> directory.</p> |
| </section> |
| |
| <section id="errors"><title>Errors During Start-up</title> |
| |
| <p>If Apache suffers a fatal problem during startup, it will |
| write a message describing the problem either to the console or |
| to the <directive module="core">ErrorLog</directive> before |
| exiting. One of the most common error messages is "<code>Unable |
| to bind to Port ...</code>". This message is usually caused by |
| either:</p> |
| |
| <ul> |
| <li>Trying to start the server on a privileged port when not |
| logged in as the root user; or</li> |
| |
| <li>Trying to start the server when there is another instance |
| of Apache or some other web server already bound to the same |
| Port.</li> |
| </ul> |
| |
| <p>For further trouble-shooting instructions, consult the |
| Apache <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a>.</p> |
| </section> |
| |
| <section id="boot"><title>Starting at Boot-Time</title> |
| |
| <p>If you want your server to continue running after a system |
| reboot, you should add a call to <program>apachectl</program> to your |
| system startup files (typically <code>rc.local</code> or a file in |
| an <code>rc.N</code> directory). This will start Apache as |
| root. Before doing this ensure that your server is properly |
| configured for security and access restrictions.</p> |
| |
| <p>The <program>apachectl</program> script is designed to act like a |
| standard SysV init script; it can take the arguments |
| <code>start</code>, <code>restart</code>, and <code>stop</code> |
| and translate them into the appropriate signals to |
| <program>httpd</program>. So you can often simply link |
| <program>apachectl</program> into the appropriate init directory. But be |
| sure to check the exact requirements of your system.</p> |
| </section> |
| |
| <section id="info"><title>Additional Information</title> |
| |
| <p>Additional information about the command-line options of <program> |
| httpd</program> and <program>apachectl</program> as well as other support |
| programs included with the server is available on the |
| <a href="programs/">Server and Supporting Programs</a> page. |
| There is also documentation on all the <a |
| href="mod/">modules</a> included with the Apache distribution |
| and the <a href="mod/directives.html">directives</a> that they |
| provide.</p> |
| </section> |
| |
| </manualpage> |