| <?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="https://cwiki.apache.org/confluence/display/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> |