| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!-- |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| This file is generated from xml source: DO NOT EDIT |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| --><title>Running Apache for Windows as a Service - Apache HTTP Server</title><link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /><link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /><link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link href="../images/favicon.ico" rel="shortcut icon" /></head><body id="manual-page"><div id="page-header"><p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p><p class="apache">Apache HTTP Server Version 2.0</p><img alt="" src="../images/feather.gif" /></div><div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div><div id="path"><a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="../">Version 2.0</a> > <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Running Apache for Windows as a Service</h1> |
| |
| <p>Apache can be run as a service on Windows NT/2000. (There is |
| also some HIGHLY EXPERIMENTAL support for similar behavior on |
| <a href="#win95svc">Windows 95/98</a>, introduced with Apache |
| 1.3.13).</p> |
| |
| <p>Installing Apache as a service should only be done once you |
| can successfully run it in a console window. See <a href="windows.html">Using Apache with Microsoft Windows</a> |
| before you attempt to install or run Apache as a service. |
| Changes to the <code>httpd.conf</code> file should always be |
| followed by starting Apache as a console window. If this |
| succeeds, the service should succeed.</p> |
| |
| <div class="note"><strong>Prior to version 1.3.13, the configuration was |
| <em>not tested</em> prior to performing the |
| installation</strong>, and a lack of service dependencies often |
| caused the console window to succeed, but the service would |
| still fail. See <a href="#service">below</a> if you are having |
| problems running a version of Apache prior to 1.3.13 to resolve |
| the issue. If you have this problem with version 1.3.13 or |
| greater, first try uninstalling (<code>-u</code>) and re-installing |
| (<code>-i</code>) the Apache service.</div> |
| |
| <p>To start Apache as a service, you first need to install it |
| as a service. Multiple Apache services can be installed, each |
| with a different name and configuration. To install the default |
| Apache service named "Apache", run the "Install Apache as |
| Service (NT only)" option from the Start menu. Once this is |
| done you can start the "Apache" service by opening the Services |
| window (in the Control Panel), selecting Apache, then clicking |
| on Start. Apache will now be running, hidden in the background. |
| You can later stop Apache by clicking on Stop. As an |
| alternative to using the Services window, you can start and |
| stop the "Apache" service from the command line with</p> |
| |
| <div class="example"><p><code> |
| NET START APACHE<br /> |
| NET STOP APACHE |
| </code></p></div> |
| |
| <p>See <a href="#signal">Controlling Apache as a Service</a> |
| for more information on installing and controlling Apache |
| services.</p> |
| |
| <div class="note"><h3>Note</h3> |
| Apache, unlike many other Windows NT/2000 services, |
| logs any errors to its own error.log file in the logs folder |
| within the Apache server root folder. You will <em>not</em> |
| find Apache error details in the Windows NT Event |
| Log.</div> |
| |
| <p>After starting Apache as a service (or if you have trouble |
| starting it) you can test it using the same <a href="windows.html#cmdline">procedure</a> as for running in a |
| console window. Remember to use the command:</p> |
| |
| <div class="example"><p><code> |
| apache -n "service name" |
| </code></p></div> |
| |
| <p>to assure you are using the service's configuration.</p> |
| |
| </div><div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#service">Running Apache for Windows as a Service</a></li><li><img alt="" src="../images/down.gif" /> <a href="#depends">Important Note on service dependencies:</a></li><li><img alt="" src="../images/down.gif" /> <a href="#account">User Account for Apache Service to Run As (NT/2000)</a></li><li><img alt="" src="../images/down.gif" /> <a href="#trouble">Troubleshooting Apache for Windows as a Service</a></li><li><img alt="" src="../images/down.gif" /> <a href="#cmdline">Running Apache for Windows from the Command Line</a></li><li><img alt="" src="../images/down.gif" /> <a href="#signal">Controlling Apache as a Service</a></li><li><img alt="" src="../images/down.gif" /> <a href="#win95svc">HIGHLY EXPERIMENTAL Windows 95/98 Service</a></li></ul></div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="service" id="service">Running Apache for Windows as a Service</a></h2> |
| |
| |
| |
| <div class="note"><strong>The <code>-n</code> option to specify a service |
| name is only available with Apache 1.3.7 and later.</strong> |
| Earlier versions of Apache only support the default service name |
| "Apache".</div> |
| |
| <p>You can install Apache as a Windows NT service as |
| follows:</p> |
| |
| <div class="example"><p><code> |
| apache -i -n "service name" |
| </code></p></div> |
| |
| <p>To install a service to use a particular configuration, |
| specify the configuration file when the service is |
| installed:</p> |
| |
| <div class="example"><p><code> |
| apache -i -n "service name" -f "\my server\conf\my.conf" |
| </code></p></div> |
| |
| <p>To remove an Apache service, use:</p> |
| |
| <div class="example"><p><code> |
| apache -u -n "service name" |
| </code></p></div> |
| |
| <p>The default "service name", if one is not specified, is |
| "Apache".</p> |
| |
| <p>Once a service is installed, you can use the <code>-n</code> |
| option, in conjunction with other options, to refer to a |
| service's configuration file. For example:</p> |
| |
| <p>To test a service's configuration file:</p> |
| |
| <div class="example"><p><code> |
| apache -n "service name" -t |
| </code></p></div> |
| |
| <p>To start a console Apache using a service's configuration |
| file:</p> |
| |
| <div class="example"><p><code> |
| apache -n "service name" |
| </code></p></div> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="depends" id="depends">Important Note on service dependencies:</a></h2> |
| |
| |
| |
| <p>Prior to Apache release 1.3.13, the dependencies required to |
| successfully start an installed service were not configured. |
| After installing a service using earlier versions of Apache, |
| you must follow these steps:</p> |
| |
| <div class="example"><p><code> |
| Run regedt32 <br /> |
| Select Window - "HKEY_LOCAL_MACHINE on Local Machine" from the menu <br /> |
| Double-click to open the SYSTEM, then the CurrentControlSet keys <br /> |
| Scroll down and click on the Apache servicename <br /> |
| Select Edit - Add Value... from the menu <br /> |
| Fill in the Add Value dialog with <br /> |
| Value Name: DependOnGroup <br /> |
| Data Type: REG_MULTI_SZ <br /> |
| and click OK <br /> |
| Leave the Multi-String Editor dialog empty and click OK <br /> |
| Select Edit - Add Value... from the menu <br /> |
| Fill in the Add Value dialog with <br /> |
| Value Name: DependOnService <br /> |
| Data Type: REG_MULTI_SZ <br /> |
| and click OK <br /> |
| Type the following list (one per line) in the Multi-String Editor dialog <br /> |
| Tcpip <br /> |
| Afd <br /> |
| and click OK <br /> |
| </code></p></div> |
| |
| <p>If you are using COM or DCOM components from a third party |
| module, ISAPI, or other add-in scripting technologies such as |
| ActiveState Perl, you may also need to add the entry Rpcss to |
| the DependOnService list. To avoid exposing the TCP port 135 |
| when it is unnecessary, Apache does not create that entry upon |
| installation. Follow the directions above to find or create the |
| DependOnService value, double click that value if it already |
| exists, and add the Rpcss entry to the list.</p> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="account" id="account">User Account for Apache Service to Run As (NT/2000)</a></h2> |
| |
| |
| |
| <p>When Apache is first installed as a service (e.g. with the |
| <code>-i</code> option) it will run as user "System" (the LocalSystem |
| account). There should be few issues if all resources for the |
| web server reside on the local system, but it has broad |
| security privileges to affect the local machine!</p> |
| |
| <div class="note">LocalSystem is a very privileged account locally, so you |
| shouldn't run any shareware applications there. However, it |
| has no network privileges and cannot leave the machine via |
| any NT-secured mechanism, including file system, named pipes, |
| DCOM, or secure RPC.</div> |
| |
| <p><strong>NEVER grant network privileges to the SYSTEM |
| account!</strong> Create a new user account instead, grant the |
| appropriate privileges to that user, and use the the "Log On |
| As:" option. Select the Start Menu -> Settings -> Control |
| Panel -> Services -> apache service ... and click the |
| "Startup" button to access this setting.</p> |
| |
| <div class="note">A service that runs in the context of the LocalSystem account |
| inherits the security context of the SCM. It is not |
| associated with any logged-on user account and does not have |
| credentials (domain name, user name, and password) to be used |
| for verification.</div> |
| |
| <p>The SYSTEM account has no privileges to the network, so |
| shared pages or a shared installation of Apache is invisible to |
| the service. If you intend to use <em>any</em> network |
| resources, the following steps should help:</p> |
| |
| <ul> |
| <li>Select Apache from the Control Panel's Service dialog and |
| click Startup.</li> |
| |
| <li>Verify that the service account is correct. You may wish |
| to create an account for your Apache services.</li> |
| |
| <li>Retype the password and password confirmation.</li> |
| |
| <li>Go to User Manager for Domains.</li> |
| |
| <li>Click on Policies from the title bar menu, and select |
| User Rights.</li> |
| |
| <li>Select the option for Advanced User Rights.</li> |
| |
| <li> |
| In the drop-down list, verify that the following rights |
| have been granted to the selected account: |
| |
| <ul> |
| <li>Act as part of the operating system</li> |
| |
| <li>Back up files and directories</li> |
| |
| <li>Log on as a service</li> |
| |
| <li>Restore files and directories</li> |
| </ul> |
| </li> |
| |
| <li>Confirm that the selected account is a member of the |
| Users group.</li> |
| |
| <li>Confirm the selected account has access to all |
| <code>document</code> and <code>script</code> |
| directories (minimally read and browse access).</li> |
| |
| <li>Confirm the selected account has read/write/delete access |
| to the Apache <code>logs</code> directory!</li> |
| </ul> |
| |
| <p>If you allow the account to log in as a user, then you can |
| log in yourself and test that the account has the privileges to |
| execute the scripts, read the web pages, and that you can start |
| Apache in a console window. If this works, and you have |
| followed the steps above, Apache should execute as a service |
| with no problems.</p> |
| |
| <div class="note"><strong>Error code 2186</strong> is a good indication |
| that you need to review the "Log On As" configuration, since |
| the server can't access a required network resource.</div> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="trouble" id="trouble">Troubleshooting Apache for Windows as a Service</a></h2> |
| |
| |
| |
| <p>When starting Apache as a service you may encounter an error |
| message from Windows service manager. For example if you try to |
| start Apache using the Services applet in Windows Control Panel |
| you may get the following message:</p> |
| |
| <div class="example"><p><code> |
| Could not start the apache service on \\COMPUTER <br /> |
| Error 1067; The process terminated unexpectedly. |
| </code></p></div> |
| |
| <p>You will get this error if there is any problem starting |
| Apache. In order to see what is causing the problem you should |
| follow the instructions for <a href="windows.html#cmdline">Running Apache for Windows from the |
| Command Line</a>.</p> |
| |
| <p>Also, Apache 1.3.13 now records startup errors in the |
| Application Event Log under Windows NT/2000, if Apache is run |
| as a service. Run the Event Viewer and select Log ... |
| Application to see these events.</p> |
| |
| <div class="note"><strong>Check the Application Event Log with the Event |
| Viewer in case of any problems, even if no error message pops |
| up to warn you that an error occured.</strong></div> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="cmdline" id="cmdline">Running Apache for Windows from the Command Line</a></h2> |
| |
| |
| |
| <p>For details on controlling Apache service from the command |
| line, please refer to <a href="windows.html#cmdline">console |
| command line</a> section.</p> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="signal" id="signal">Controlling Apache as a Service</a></h2> |
| |
| |
| |
| <p>Multiple instances of Apache can be installed and run as |
| services. Signal an installed Apache service to start, restart, |
| or shutdown/stop as follows:</p> |
| |
| <div class="example"><p><code> |
| apache -n "service name" -k start <br /> |
| apache -n "service name" -k restart <br /> |
| apache -n "service name" -k shutdown <br /> |
| apache -n "service name" -k stop |
| </code></p></div> |
| |
| <p>For the default "Apache" service, the <code>-n</code> Apache |
| option is still required, since the <code>-k</code> commands without |
| the <code>-n</code> option are directed at Apache running in a console |
| window. The quotes are only required if the service name contains spaces.</p> |
| |
| <div class="note"><strong>Note the <code>-k stop</code> alias for the |
| <code>-k shutdown</code> command was introduced in Apache version |
| 1.3.13.</strong> Earlier versions of Apache will only recognize the |
| <code>-k shutdown</code> option. Prior to 1.3.3, Apache did not |
| recognize <em>any</em> <code>-k</code> options at all!</div> |
| |
| <p>In addition, you can use the native NT <code>NET</code> command |
| to start and stop Apache services as follows:</p> |
| |
| <div class="example"><p><code> |
| NET START "service name" <br /> |
| NET STOP "service name" |
| </code></p></div> |
| |
| <p>Again, quotes are only required if the service name contains |
| spaces.</p> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="win95svc" id="win95svc">HIGHLY EXPERIMENTAL Windows 95/98 Service</a></h2> |
| |
| |
| |
| <div class="note"><strong>The service options for Windows 95 and 98 are |
| only available with Apache 1.3.13 and later.</strong> Earlier |
| versions of Apache only supported Apache in a console window |
| for Windows 95/98.</div> |
| |
| <p>There is some support for Apache on Windows 95/98 to behave |
| in a similar manner as a service on Windows NT/2000. It is |
| <em>highly experimental</em>, if it works (at all) the Apache |
| Sofware Foundation will not attest to its reliability or |
| future support. Proceed at your own risk!</p> |
| |
| <p>Once you have confirmed that Apache runs correctly at the <a href="windows.html#cmdline">Command Prompt</a> you can install, |
| control and uninstall it with the same commands as the Windows |
| NT/2000 version.</p> |
| |
| <p>There are, however, significant differences that you should |
| note:</p> |
| |
| <p>Apache will attempt to start and if successful it will run |
| in the background. If you run the command</p> |
| |
| <div class="example"><p><code> |
| Apache -n "service name" -k start |
| </code></p></div> |
| |
| <p>via a shortcut on your desktop, for example, then if the |
| service starts successfully a console window will flash up but |
| immediately disappears. If Apache detects any errors on startup |
| such as a incorrect entries in the <code>httpd.conf</code> file, |
| then the console window will remain visible. This will display |
| an error message which will be useful in tracking down the cause |
| of the problem.</p> |
| |
| <p>Windows 95/98 does not support <code>NET START</code> or |
| <code>NET STOP</code> commands so you must use Apache's Service |
| Control options at a command prompt. You may wish to set up a |
| shortcut for each of these commands so that you can just choose |
| it from the start menu or desktop to perform the required action.</p> |
| |
| <p>Apache and Windows 95/98 offer no support for running the |
| Apache service as a specific user with network privileges. In |
| fact, Windows 95/98 offers no security on the local machine, |
| either. This is the simple reason that the Apache Software |
| Foundation never endorses the use of Windows 95/98 as a public |
| httpd server. These facilities exist only to assist the user in |
| developing web content and learning the Apache server, and |
| perhaps as a intranet server on a secured, private network.</p> |
| |
| </div></div><div id="footer"><p class="apache">Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a></p><p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div></body></html> |