mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-30 08:05:39 +03:00 
			
		
		
		
	Matched up <p></p> & <pre></pre>. Fixed misspellings. Fixed links to ../install-tpf.html & ebcdic.html (which should probably be moved down into platform/). Changed links to windows.html#test to windows.html@cmdline. Entities encoded. Changed bogus <emp> tags to <em>. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88379 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			326 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 | |
| <HTML>
 | |
| <HEAD>
 | |
| <TITLE>Running Apache for Windows as a Service</TITLE>
 | |
| </HEAD>
 | |
| 
 | |
| <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 | |
| <BODY
 | |
|  BGCOLOR="#FFFFFF"
 | |
|  TEXT="#000000"
 | |
|  LINK="#0000FF"
 | |
|  VLINK="#000080"
 | |
|  ALINK="#FF0000"
 | |
| >
 | |
| <!--#include virtual="header.html" -->
 | |
| 
 | |
| <H1 ALIGN="CENTER">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 
 | |
|    httpd.conf file should always be followed by starting Apache as a console 
 | |
|    window.  If this succeeds, the service should succeed.</P>
 | |
| 
 | |
| <P><STRONG>NOTE: 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 (-u) and re-installing (-i) the Apache service.</P>
 | |
| 
 | |
| <HR>
 | |
| 
 | |
| <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>
 | |
| 
 | |
| <PRE>
 | |
|   NET START APACHE
 | |
|   NET STOP APACHE
 | |
| </PRE>
 | |
| 
 | |
| <P>See <A HREF="#signal">Controlling Apache as a Service</A>
 | |
|    for more information on installing and controlling Apache services.</P>
 | |
| 
 | |
| <P><STRONG>Apache, unlike many other Windows NT/2000 services, logs any
 | |
|    errors to it's 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.</STRONG></P>
 | |
| 
 | |
| <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>
 | |
| 
 | |
| <PRE>
 | |
|   apache -n "service name"
 | |
| </PRE>
 | |
| 
 | |
| <P>to assure you are using the service's configuration.</P>
 | |
| 	 
 | |
| 	 
 | |
| <H2><A NAME="service">Running Apache for Windows as a Service</A></H2>
 | |
| 
 | |
| <P><STRONG>Note: The -n 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'.</P>
 | |
| 
 | |
| <P>You can install Apache as a Windows NT service as follows:</P>
 | |
| 
 | |
| <PRE>
 | |
|     apache -i -n "service name"
 | |
| </PRE>
 | |
| 
 | |
| <P>To install a service to use a particular configuration, specify the
 | |
|    configuration file when the service is installed:</P>
 | |
| 
 | |
| <PRE>
 | |
|     apache -i -n "service name" -f "\my server\conf\my.conf"
 | |
| </PRE>
 | |
| 
 | |
| <P>To remove an Apache service, use:</P>
 | |
| 
 | |
| <PRE>
 | |
|     apache -u -n "service name"
 | |
| </PRE>
 | |
| 
 | |
| <P>The default "service name", if one is not specified, is "Apache".</P>
 | |
| 
 | |
| <P>Once a service is installed, you can use the <SAMP>-n</SAMP> 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>
 | |
| <PRE>
 | |
|     apache -n "service name" -t
 | |
| </PRE>
 | |
| 
 | |
| <P>To start a console Apache using a service's configuration file:</P>
 | |
| <PRE>
 | |
|     apache -n "service name"
 | |
| </PRE>
 | |
| 
 | |
| <H2><A NAME="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:
 | |
| 
 | |
| <PRE>
 | |
|     Run regedt32
 | |
|     Select <U>W</U>indow - "HKEY_LOCAL_MACHINE on Local Machine" from the menu
 | |
|     Double-click to open the SYSTEM, then the CurrentControlSet keys
 | |
|     Scroll down and click on the Apache servicename
 | |
|     Select <U>E</U>dit - Add <U>V</U>alue... from the menu
 | |
|     Fill in the Add Value dialog with 
 | |
|         <U>V</U>alue Name: DependOnGroup 
 | |
|         <U>D</U>ata Type: REG_MULTI_SZ
 | |
|         and click OK
 | |
|     Leave the Multi-String Editor dialog empty and click OK
 | |
|     Select <U>E</U>dit - Add <U>V</U>alue... from the menu
 | |
|     Fill in the Add Value dialog with 
 | |
|         <U>V</U>alue Name: DependOnService
 | |
|         <U>D</U>ata Type: REG_MULTI_SZ
 | |
|         and click OK
 | |
|     Type the following list (one per line) in the Multi-String Editor dialog
 | |
|         Tcpip
 | |
|         Afd
 | |
|         and click OK
 | |
| </PRE>
 | |
| 
 | |
| <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>
 | |
| 
 | |
| 
 | |
| <H2>User Account for Apache Service to Run As (NT/2000)</H2>
 | |
| 
 | |
| <P>When Apache is first installed as a service (e.g. with the -i 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 privilages to affect the local machine!</P>
 | |
| 
 | |
| <BLOCKQUOTE>
 | |
|        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.
 | |
| </BLOCKQUOTE> 
 | |
| 
 | |
| <P><STRONG>NEVER grant network privilages to the SYSTEM account!</STRONG>
 | |
|    Create a new user account instead, grant the appropriate privilages 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>
 | |
| 
 | |
| <BLOCKQUOTE>
 | |
|        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. 
 | |
| </BLOCKQUOTE>
 | |
| 
 | |
| <P>The SYSTEM account has no privilages 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>Verify that the service account is correct.  You may wish to create an 
 | |
|     account for your Apache services.
 | |
| <LI>Retype the password and password confirmation.
 | |
| <LI>Go to User Manager for Domains.
 | |
| <LI>Click on Policies from the title bar menu, and select User Rights.
 | |
| <LI>Select the option for Advanced User Rights.
 | |
| <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>Back up files and directories
 | |
|         <LI>Log on as a service
 | |
|         <LI>Restore files and directories
 | |
|     </UL>
 | |
| <LI>Confirm that the selected account is a member of the Users group.
 | |
| <LI>Confirm the selected account has access to all document and script 
 | |
|     directories (minimally read and browse access).
 | |
| <LI>Confirm the selected account has read/write/delete access to the Apache 
 | |
|     logs directory!
 | |
| </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 privilages 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>
 | |
| <P><STRONG>Note: 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.</P>
 | |
| 
 | |
| 
 | |
| <H2><A NAME="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;
 | |
| <PRE>
 | |
|   Could not start the apache service on \\COMPUTER
 | |
|   Error 1067; The process terminated unexpectedly.
 | |
| </PRE>
 | |
| <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 <U>L</U>og ... <U>A</U>pplication to see these events.
 | |
| 
 | |
| <P><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></P>
 | |
| 
 | |
| <H2><A NAME="cmdline">Running Apache for Windows from the Command Line</A></H2>
 | |
| 
 | |
| For details on controlling Apache service from the command line, please refer to
 | |
| <a href="windows.html#cmdline">console command line</a> section.
 | |
| 
 | |
| 
 | |
| <H2><A NAME="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>
 | |
| 
 | |
| <PRE>
 | |
|     apache -n "service name" -k start
 | |
|     apache -n "service name" -k restart
 | |
|     apache -n "service name" -k shutdown
 | |
|     apache -n "service name" -k stop
 | |
| </PRE>
 | |
| 
 | |
| <P>For the default "Apache" service, the -n Apache option is still required, 
 | |
|    since the -k commands without the -n option are directed at Apache running 
 | |
|    in a  console window.  The quotes are only required if the service name 
 | |
|    contains spaces.</P>
 | |
| 
 | |
| <P><STRONG>Note: the -k stop alias for the -k shutdown command was introduced
 | |
|    in Apache version 1.3.13.</STRONG>  Earlier versions of Apache will only
 | |
|    recognize the -k shutdown option.  Prior to 1.3.3, Apache did not recognize
 | |
|    <EM>any</EM> -k options at all!</P>
 | |
| 
 | |
| <P>In addition, you can use the native NT NET command to
 | |
|    start and stop Apache services as follows:</P>
 | |
| 
 | |
| <PRE>
 | |
|     NET START "service name"
 | |
|     NET STOP "service name"
 | |
| </PRE>
 | |
| 
 | |
| <P>Again, quotes are only required if the service name contains spaces.</P>
 | |
| 
 | |
| <H2><A NAME="win95svc">HIGHLY EXPERIMENTAL Windows 95/98 Service</A></H2>
 | |
| 
 | |
| <P><STRONG>Note: 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.</P>
 | |
| 
 | |
| <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 it's 
 | |
|    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>
 | |
| 
 | |
| <PRE>
 | |
|    Apache -n "service name" -k start
 | |
| </PRE>
 | |
| 
 | |
|    <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
 | |
|    httpd.conf 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 NET START or NET STOP 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 privilages.  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>
 | |
| 
 | |
| <!--#include virtual="footer.html" -->
 | |
| </BODY>
 | |
| </HTML>
 |