1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Using Apache HTTP Server on Microsoft Windows - Apache HTTP Server</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <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>
18 <p class="apache">Apache HTTP Server Version 2.5</p>
19 <img alt="" src="../images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
22 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Platform Specific Notes</a></div><div id="page-content"><div id="preamble"><h1>Using Apache HTTP Server on Microsoft Windows</h1>
24 <p><span>Available Languages: </span><a href="../en/platform/windows.html" title="English"> en </a> |
25 <a href="../ko/platform/windows.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
28 <p>This document explains how to install, configure and run
29 Apache 2.3 under Microsoft Windows. If you have questions after
30 reviewing the documentation (and any event and error logs), you
31 should consult the peer-supported
32 <a href="http://httpd.apache.org/userslist.html">users' mailing
35 <p>This document assumes that you are installing a binary
36 distribution of Apache. If you want to compile Apache yourself
37 (possibly to help with development or tracking down bugs),
38 see <a href="win_compiling.html">Compiling Apache for Microsoft
41 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#req">Operating System Requirements</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#down">Downloading Apache for Windows</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#inst">Installing Apache for Windows</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#advinst">Advanced Installation Topics</a></li>
45 <li><img alt="" src="../images/down.gif" /> <a href="#cust">Customizing Apache for Windows</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#winsvc">Running Apache as a Service</a></li>
47 <li><img alt="" src="../images/down.gif" /> <a href="#wincons">Running Apache as a Console Application</a></li>
48 <li><img alt="" src="../images/down.gif" /> <a href="#test">Testing the Installation</a></li>
49 <li><img alt="" src="../images/down.gif" /> <a href="#windrivemap">Configuring Access to Network Resources</a></li>
51 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
53 <h2><a name="req" id="req">Operating System Requirements</a></h2>
56 <p>The primary Windows platform for running Apache 2.3 is Windows
57 2000 or later. The binary installer only works with the x86 family
58 of processors, such as Intel and AMD processors. Always obtain and
59 install the current service pack to avoid operating system bugs.</p>
61 <div class="note">Apache HTTP Server versions later than 2.2 will not run on any
62 operating system earlier than Windows 2000.</div>
63 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
65 <h2><a name="down" id="down">Downloading Apache for Windows</a></h2>
68 <p>Information on the latest versions of Apache can be found on the
69 web site of the Apache web server at
70 <a href="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</a>.
71 There you will find the current release, as well as more recent alpha
72 or beta test versions, and a list of HTTP and FTP mirrors from which
73 you can download the Apache web server. Please use a mirror near to
74 you for a fast and reliable download.</p>
76 <p>For Windows installations you should download the version of
77 Apache for Windows with the <code>.msi</code> extension. This is a
78 single Microsoft Installer file, which contains a ready-to-run
79 build of Apache. There is a separate <code>.zip</code> file,
80 which contains only the source code, see the summary above.</p>
82 <p>There is a choice between an *-openssl-*.msi flavor and
83 a *-no_ssl.msi flavor. The *-openssl-*.msi flavor is distributed
84 by the Apache Software Foundation under ECCN 5D002 pursuant to
85 US Export Law license exception TSU. This law may or may not
86 apply to your circumstance, please review the httpd README as
87 well as the <a href="http://www.apache.org/licenses/exports/">ASF
88 Export Classifications and Source Links</a> page. The project
89 provides no further guidance to third parties in resolving the
90 legal circumstances which apply in each circumstance.</p>
91 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
93 <h2><a name="inst" id="inst">Installing Apache for Windows</a></h2>
96 <p>You need Microsoft Installer 2.0 or above for the installation
97 to work. For Windows NT 4.0 and 2000 refer to Microsoft's article
98 <a href="http://support.microsoft.com/kb/292539/">KB 292539</a>.
99 Windows XP and later do not require this update.</p>
101 <p>Note that you cannot install two versions of Apache 2.3 on the
102 same computer with the binary installer. You can, however, install
103 a version of the 1.3 series <strong>and</strong> a version of the
104 2.3 series on the same computer without problems. If you need to
105 have two different 2.3 versions on the same computer, you have to
106 <a href="win_compiling.html">compile and install Apache from the
109 <p>Run the Apache <code>.msi</code> file you downloaded above. The
110 installation will ask you for these things:</p>
113 <li><p><strong>Network Domain.</strong> Enter the DNS domain in which
114 your server is or will be registered in. For example, if your
115 server's full DNS name is <code>server.example.net</code>, you would
116 type <code>example.net</code> here.</p></li>
118 <li><p><strong>Server Name.</strong> Your server's full DNS name.
119 From the example above, you would type <code>server.example.net</code>
122 <li><p><strong>Administrator's Email Address.</strong> Enter the
123 server administrator's or webmaster's email address here. This
124 address will be displayed along with error messages to the client
127 <li><p><strong>For whom to install Apache</strong> Select <code>for
128 All Users, on Port 80, as a Service - Recommended</code> if you'd
129 like your new Apache to listen at port 80 for incoming traffic.
130 It will run as a service (that is, Apache will run even if no one
131 is logged in on the server at the moment) Select <code>only for
132 the Current User, on Port 8080, when started Manually</code> if
133 you'd like to install Apache for your personal experimenting or
134 if you already have another WWW server running on port 80.</p></li>
136 <li><p><strong>The installation type.</strong> Select <code>Typical</code>
137 for everything except the source code and libraries for module
138 development. With <code>Custom</code> you can specify what to
139 install. A full install will require about 13 megabytes of free
140 disk space. This does <em>not</em> include the size of your web
143 <li><p><strong>Where to install.</strong> The default path is
144 <code>C:\Program Files\Apache Software Foundation</code>
145 under which a directory called
146 <code>Apache2.3</code> will be created by default.</p></li>
149 <p>During the installation, Apache will configure the files in the
150 <code>conf</code> subdirectory to reflect the chosen installation
151 directory. However, if any of the configuration files in this
152 directory already exist, they will not be overwritten. Instead, the
153 new copy of the corresponding file will be left with the extension
154 <code>.default</code>. So, for example, if <code>conf\httpd.conf</code>
155 already exists, it will be renamed as <code>conf\httpd.conf.default</code>.
156 After the installation you should manually check to see what new
157 settings are in the <code>.default</code> file, and if necessary,
158 update your existing configuration file.</p>
160 <p>Also, if you already have a file called <code>htdocs\index.html</code>,
161 it will not be overwritten (and no <code>index.html.default</code>
162 will be installed either). This means it should be safe to install
163 Apache over an existing installation, although you would have to
164 stop the existing running server before doing the installation, and
165 then start the new one after the installation is finished.</p>
167 <p>After installing Apache, you must edit the configuration files
168 in the <code>conf</code> subdirectory as required. These files
169 will be configured during the installation so that Apache is ready
170 to be run from the directory it was installed into, with the
171 documents server from the subdirectory <code>htdocs</code>. There
172 are lots of other options which you should set before you really
173 start using Apache. However, to get started quickly, the files
174 should work as installed.</p>
175 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
176 <div class="section">
177 <h2><a name="advinst" id="advinst">Advanced Installation Topics</a></h2>
180 <p>One feature of the installer, "Build Headers and Libraries", can be
181 ignored by most users, but should be installed if compiling third party
182 modules. The "APR Iconv Code Pages" can similarly be omitted by most
183 users, unless using <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> or a third party
184 module which relies on APR internationalization features.</p>
186 <p>There are requests to ship a .zip file from time to time. There is
187 no point in the ASF consuming additional storage, mirroring and bandwidth
188 for this purpose, because the .msi installer allows the installation
189 artifacts to all be unpacked using the <code>msiexec /a</code> network
190 installation option. Using this command against any .msi will result
191 in an exploded tree of all of the individual files and components.</p>
193 <p>The installation options above can be customized by users familiar
194 with msiexec.exe options and silent installation. The actual installer
195 sources are available in the httpd/httpd/win32-msi/ tree of the httpd
196 project subversion respository. For reference, some of the more common
197 variables which may be modified are;</p>
200 <li><code>AgreeToLicense</code> (toggle to "Yes")</li>
201 <li><code>ALLUSERS</code> (choose between Null and "1")</li>
202 <li><code>ApplicationUsers</code> (toggle to "OnlyCurrentUser")</li>
203 <li><code>EXISTING_APACHE_SERVICE_PATH</code></li>
204 <li><code>INSTALLDIR</code> (default "ProgramFilesFolder\Apache Software Foundation\Apache2.5\")</li>
205 <li><code>INSTALLLEVEL</code> (default "100", refer to list below)</li>
206 <li><code>RESOLVED_WINSOCK2</code> (toggle to "1")</li>
207 <li><code>SERVERADMIN</code></li>
208 <li><code>SERVERDOMAIN</code></li>
209 <li><code>SERVERNAME</code></li>
210 <li><code>SERVERPORT</code> (default "80")</li>
211 <li><code>SERVERSSLPORT</code> (default "443")</li>
212 <li><code>SERVICEINTERNALNAME</code> (default "Apache2.5", no spaces!)</li>
213 <li><code>SERVICENAME</code> (default "Apache2.5", include spaces)</li>
214 <li><code>SetupType</code> (default "Typical")</li>
217 <p>The installation level of various features, which may be individually
218 toggled, include;</p>
221 <li>Apache (1, base Apache HTTP Server 2.5 feature)</li>
222 <li>ApacheDocs (11, Apache Documentation)</li>
223 <li>ApacheMonitoring (41, Apache Service Taskbar Icon)</li>
224 <li>ApacheRuntime (1, Apache Runtime)</li>
225 <li>BuildFiles (101, Build Headers and Libraries)</li>
226 <li>Iconv (21, APR Iconv Code Pages)</li>
227 <li>OpensslBin (31, OpenSSL Runtime)</li>
228 <li>SslBin (41, Ssl Binaries)</li>
232 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
233 <div class="section">
234 <h2><a name="cust" id="cust">Customizing Apache for Windows</a></h2>
237 <p>Apache is configured by the files in the <code>conf</code>
238 subdirectory. These are the same files used to configure the Unix
239 version, but there are a few different directives for Apache on
240 Windows. See the <a href="../mod/directives.html">directive index</a>
241 for all the available directives.</p>
243 <p>The main differences in Apache for Windows are:</p>
245 <li><p>Because Apache for Windows is multithreaded, it does not
246 use a separate process for each request, as Apache can on Unix.
247 Instead there are usually only two Apache processes running: a
248 parent process, and a child which handles the requests. Within
249 the child process each request is handled by a separate thread.
252 <p>The process management directives are also different:</p>
254 <p><code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>:
255 Like the Unix directive, this controls how many connections a single
256 child process will serve before exiting.
257 However, unlike on Unix, a replacement process is not instantly
258 available. Use the default <code>MaxConnectionsPerChild 0</code>,
259 unless instructed to change the behavior to overcome a memory leak
260 in third party modules or in-process applications.</p>
262 <div class="warning"><strong>Warning: The server configuration
263 file is reread when a new child process is started. If you have
264 modified <code>httpd.conf</code>, the new child may not start or
265 you may receive unexpected results.</strong></div>
267 <p><code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>:
268 This directive is new. It tells the server how many threads it
269 should use. This is the maximum number of connections the server
270 can handle at once, so be sure to set this number high enough for
271 your site if you get a lot of hits. The recommended default is
272 <code>ThreadsPerChild 150</code>, but this must be adjusted to
273 reflect the greatest anticipated number of simultaneous
274 connections to accept.</p></li>
276 <li><p>The directives that accept filenames as arguments must use
277 Windows filenames instead of Unix ones. However, because Apache
278 may interpret backslashes as an "escape character" sequence, you
279 should consistently use forward slashes in path names, not
280 backslashes. Drive letters can be used; if omitted, the drive
281 of the SystemRoot directive (or -d command line option) becomes
282 the default.</p></li>
284 <li><p>While filenames are generally case-insensitive on
285 Windows, URLs are still treated internally as case-sensitive
286 before they are mapped to the filesystem. For example, the
287 <code class="directive"><a href="../mod/core.html#location"><Location></a></code>,
288 <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, and <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> directives all use
289 case-sensitive arguments. For this reason, it is particularly
290 important to use the <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> directive when attempting
291 to limit access to content in the filesystem, since this
292 directive applies to any content in a directory, regardless of
293 how it is accessed. If you wish to assure that only lowercase
294 is used in URLs, you can use something like:</p>
296 <pre class="prettyprint lang-config">
298 RewriteMap lowercase int:tolower
299 RewriteCond %{REQUEST_URI} [A-Z]
300 RewriteRule (.*) ${lowercase:$1} [R,L]
304 <li><p>When running, Apache needs write access only to the logs
305 directory and any configured cache directory tree. Due to the
306 issue of case insensitive and short 8.3 format names, Apache must
307 validate all path names given. This means that each directory
308 which Apache evaluates, from the drive root up to the directory
309 leaf, must have read, list and traverse directory permissions.
310 If Apache2.3 is installed at C:\Program Files, then the root
311 directory, Program Files and Apache2.3 must all be visible
314 <li><p>Apache for Windows contains the ability to load modules at
315 runtime, without recompiling the server. If Apache is compiled
316 normally, it will install a number of optional modules in the
317 <code>\Apache2.3\modules</code> directory. To activate these or
318 other modules, the new <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>
319 directive must be used. For example, to activate the status
320 module, use the following (in addition to the status-activating
321 directives in <code>access.conf</code>):</p>
323 <pre class="prettyprint lang-config">
324 LoadModule status_module modules/mod_status.so
328 <p>Information on <a href="../mod/mod_so.html#creating">creating
329 loadable modules</a> is also available.</p></li>
331 <li><p>Apache can also load ISAPI (Internet Server Application
332 Programming Interface) extensions such as those used by Microsoft
333 IIS and other Windows servers. <a href="../mod/mod_isapi.html">More
334 information is available</a>. Note that Apache <strong>cannot</strong>
335 load ISAPI Filters, and ISAPI Handlers with some Microsoft feature
336 extensions will not work.</p></li>
338 <li><p>When running CGI scripts, the method Apache uses to find
339 the interpreter for the script is configurable using the
340 <code class="directive"><a href="../mod/core.html#scriptinterpretersource">ScriptInterpreterSource</a></code>
343 <li><p>Since it is often difficult to manage files with names
344 like <code>.htaccess</code> in Windows, you may find it useful to
345 change the name of this per-directory configuration file using
346 the <code class="directive"><a href="../mod/core.html#accessfilename">AccessFilename</a></code>
349 <li><p>Any errors during Apache startup are logged into the
350 Windows event log when running on Windows NT. This mechanism
351 acts as a backup for those situations where Apache is not yet
352 prepared to use the <code>error.log</code> file. You can
353 review the Windows Applicat Event Log by using the Event Viewer,
354 e.g. Start - Settings - Control Panel - Administrative Tools
355 - Event Viewer.</p></li>
358 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
359 <div class="section">
360 <h2><a name="winsvc" id="winsvc">Running Apache as a Service</a></h2>
363 <p>You can install Apache as a service automatically during the
364 installation. If you chose to install for all users, the
365 installation will create an Apache service for you. If you specify
366 to install for yourself only, you can manually register Apache as a
367 service after the installation. You have to be a member of the
368 Administrators group for the service installation to succeed.</p>
370 <p>Apache comes with a utility called the Apache Service Monitor.
371 With it you can see and manage the state of all installed Apache
372 services on any machine on your network. To be able to manage an
373 Apache service with the monitor, you have to first install the
374 service (either automatically via the installation or manually).
377 <p>You can install Apache as a Windows NT service as follows from
378 the command prompt at the Apache <code>bin</code> subdirectory:</p>
380 <div class="example"><p><code>
384 <p>If you need to specify the name of the service you want to
385 install, use the following command. You have to do this if you
386 have several different service installations of Apache on your
389 <div class="example"><p><code>
390 httpd.exe -k install -n "MyServiceName"
393 <p>If you need to have specifically named configuration files for
394 different services, you must use this:</p>
396 <div class="example"><p><code>
397 httpd.exe -k install -n "MyServiceName" -f "c:\files\my.conf"
400 <p>If you use the first command without any special parameters except
401 <code>-k install</code>, the service will be called <code>Apache2.3</code>
402 and the configuration will be assumed to be <code>conf\httpd.conf</code>.
405 <p>Removing an Apache service is easy. Just use:</p>
407 <div class="example"><p><code>
408 httpd.exe -k uninstall
411 <p>The specific Apache service to be uninstalled can be specified by using:</p>
413 <div class="example"><p><code>
414 httpd.exe -k uninstall -n "MyServiceName"
417 <p>Normal starting, restarting and shutting down of an Apache
418 service is usually done via the Apache Service Monitor, by using
419 commands like <code>NET START Apache2.3</code> and <code>NET STOP
420 Apache2.3</code> or via normal Windows service management. Before
421 starting Apache as a service by any means, you should test the
422 service's configuration file by using:</p>
424 <div class="example"><p><code>
425 httpd.exe -n "MyServiceName" -t
428 <p>You can control an Apache service by its command line switches,
429 too. To start an installed Apache service you'll use this:</p>
431 <div class="example"><p><code>
435 <p>To stop an Apache service via the command line switches, use
438 <div class="example"><p><code>
444 <div class="example"><p><code>
445 httpd.exe -k shutdown
448 <p>You can also restart a running service and force it to reread
449 its configuration file by using:</p>
451 <div class="example"><p><code>
455 <p>By default, all Apache services are registered to run as the
456 system user (the <code>LocalSystem</code> account). The
457 <code>LocalSystem</code> account has no privileges to your network
458 via any Windows-secured mechanism, including the file system, named
459 pipes, DCOM, or secure RPC. It has, however, wide privileges locally.
462 <div class="warning"><strong>Never grant any network privileges to
463 the <code>LocalSystem</code> account! If you need Apache to be able
464 to access network resources, create a separate account for Apache as
465 noted below.</strong></div>
467 <p>It is recommended that users create a separate account for running
468 Apache service(s). If you have to access network resources via Apache,
469 this is required.</p>
472 <li>Create a normal domain user account, and be sure to
473 memorize its password.</li>
475 <li>Grant the newly-created user a privilege of <code>Log on
476 as a service</code> and <code>Act as part of the operating
477 system</code>. On Windows NT 4.0 these privileges are granted via
478 User Manager for Domains, but on Windows 2000 and XP you probably
479 want to use Group Policy for propagating these settings. You can
480 also manually set these via the Local Security Policy MMC snap-in.
483 <li>Confirm that the created account is a member of the Users
486 <li>Grant the account read and execute (RX) rights to all document
487 and script folders (<code>htdocs</code> and <code>cgi-bin</code>
490 <li>Grant the account change (RWXD) rights to the
491 Apache <code>logs</code> directory.</li>
493 <li>Grant the account read and execute (RX) rights to the
494 <code>httpd.exe</code> binary executable.</li>
497 <div class="note">It is usually a good practice to grant the user the Apache
498 service runs as read and execute (RX) access to the whole Apache2.3
499 directory, except the <code>logs</code> subdirectory, where the
500 user has to have at least change (RWXD) rights.</div>
502 <p>If you allow the account to log in as a user and as a service,
503 then you can log on with that account and test that the account has
504 the privileges to execute the scripts, read the web pages, and that
505 you can start Apache in a console window. If this works, and you
506 have followed the steps above, Apache should execute as a service
507 with no problems.</p>
509 <div class="note"><strong>Error code 2186</strong> is a good indication that
510 you need to review the "Log On As" configuration for the service,
511 since Apache cannot access a required network resource. Also, pay
512 close attention to the privileges of the user Apache is
513 configured to run as.</div>
515 <p>When starting Apache as a service you may encounter an error
516 message from the Windows Service Control Manager. For example,
517 if you try to start Apache by using the Services applet in the
518 Windows Control Panel, you may get the following message:</p>
520 <div class="example"><p><code>
521 Could not start the Apache2.3 service on \\COMPUTER <br />
522 Error 1067; The process terminated unexpectedly.
525 <p>You will get this generic error if there is any problem with
526 starting the Apache service. In order to see what is really causing
527 the problem you should follow the instructions for Running Apache
528 for Windows from the Command Prompt.</p>
530 <p>If you are having problems with the service, it is suggested
531 you follow the instructions below to try starting httpd.exe from
532 a console window, and work out the errors before struggling to
533 start it as a service again.</p>
534 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
535 <div class="section">
536 <h2><a name="wincons" id="wincons">Running Apache as a Console Application</a></h2>
539 <p>Running Apache as a service is usually the recommended way to
540 use it, but it is sometimes easier to work from the command line,
541 especially during initial configuration and testing.</p>
543 <p>To run Apache from the command line as a console application,
544 use the following command:</p>
546 <div class="example"><p><code>
550 <p>Apache will execute, and will remain running until it is stopped
551 by pressing Control-C.</p>
553 <p>You can also run Apache via the shortcut Start Apache in Console
554 placed to <code>Start Menu --> Programs --> Apache HTTP Server
555 2.3.xx --> Control Apache Server</code> during the installation.
556 This will open a console window and start Apache inside it. If you
557 don't have Apache installed as a service, the window will remain
558 visible until you stop Apache by pressing Control-C in the console
559 window where Apache is running in. The server will exit in a few
560 seconds. However, if you do have Apache installed as a service, the
561 shortcut starts the service. If the Apache service is running
562 already, the shortcut doesn't do anything.</p>
564 <p>If Apache is running as a service, you can tell it to stop by opening another console
565 window and entering:</p>
567 <div class="example"><p><code>
568 httpd.exe -k shutdown
571 <p>Running as a service should be preferred over running in a
572 console window because this lets Apache end any current operations
573 and clean up gracefully.</p>
575 <p>But if the server is running in a console window, you can
576 only stop it by pressing Control-C in the same window.</p>
578 <p>You can also tell Apache to restart. This forces it to reread
579 the configuration file. Any operations in progress are allowed to
580 complete without interruption. To restart Apache, either press
581 Control-Break in the console window you used for starting Apache,
584 <div class="example"><p><code>
588 <p>if the server is running as a service.</p>
590 <div class="note">Note for people familiar with the Unix version of Apache:
591 these commands provide a Windows equivalent to <code>kill -TERM
592 <em>pid</em></code> and <code>kill -USR1 <em>pid</em></code>. The
593 command line option used, <code>-k</code>, was chosen as a reminder
594 of the <code>kill</code> command used on Unix.</div>
596 <p>If the Apache console window closes immediately or unexpectedly
597 after startup, open the Command Prompt from the Start Menu -->
598 Programs. Change to the folder to which you installed Apache, type
599 the command <code>httpd.exe</code>, and read the error message. Then
600 change to the logs folder, and review the <code>error.log</code>
601 file for configuration mistakes. If you accepted the defaults when
602 you installed Apache, the commands would be:</p>
604 <div class="example"><p><code>
606 cd "\Program Files\Apache Software Foundation\Apache2.3\bin" <br />
610 <p>Then wait for Apache to stop, or press Control-C. Then enter the
613 <div class="example"><p><code>
618 <p>When working with Apache it is important to know how it will
619 find the configuration file. You can specify a configuration file
620 on the command line in two ways:</p>
623 <li><p><code>-f</code> specifies an absolute or relative path to
624 a particular configuration file:</p>
626 <div class="example"><p><code>
627 httpd.exe -f "c:\my server files\anotherconfig.conf"
632 <div class="example"><p><code>
633 httpd.exe -f files\anotherconfig.conf
634 </code></p></div></li>
636 <li><p><code>-n</code> specifies the installed Apache service
637 whose configuration file is to be used:</p>
639 <div class="example"><p><code>
640 httpd.exe -n "MyServiceName"
645 <p>In both of these cases, the proper
646 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> should be set in
647 the configuration file.</p>
649 <p>If you don't specify a configuration file with <code>-f</code>
650 or <code>-n</code>, Apache will use the file name compiled into the
651 server, such as <code>conf\httpd.conf</code>. This built-in path
652 is relative to the installation directory. You can verify the compiled
653 file name from a value labelled as <code>SERVER_CONFIG_FILE</code> when
654 invoking Apache with the <code>-V</code> switch, like this:</p>
656 <div class="example"><p><code>
660 <p>Apache will then try to determine its <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> by trying the following, in this order:</p>
663 <li>A <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> directive
664 via the <code>-C</code> command line switch.</li>
666 <li>The <code>-d</code> switch on the command line.</li>
668 <li>Current working directory.</li>
670 <li>A registry entry which was created if you did a binary
673 <li>The server root compiled into the server. This is <code>
674 /apache</code> by default, you can verify it by using <code>
675 httpd.exe -V</code> and looking for a value labelled as
676 <code>HTTPD_ROOT</code>.</li>
679 <p>During the installation, a version-specific registry key is
680 created in the Windows registry. The location of this key depends
681 on the type of the installation. If you chose to install Apache
682 for all users, the key is located under the
683 <code>HKEY_LOCAL_MACHINE</code> hive, like this (the version
684 numbers will of course vary between different versions of Apache:
687 <div class="example"><p><code>
688 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.50
691 <p>Correspondingly, if you chose to install Apache for the current
692 user only, the key is located under the <code>HKEY_CURRENT_USER</code>
693 hive, the contents of which are dependent of the user currently
696 <div class="example"><p><code>
697 HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.50
700 <p>This key is compiled into the server and can enable you to test
701 new versions without affecting the current version. Of course, you
702 must take care not to install the new version in the same
703 directory as another version.</p>
705 <p>If you did not do a binary install, Apache will in some
706 scenarios complain about the missing registry key. This warning can
707 be ignored if the server was otherwise able to find its
708 configuration file.</p>
710 <p>The value of this key is the
711 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> directory which
712 contains the <code>conf</code> subdirectory. When Apache starts it
713 reads the <code>httpd.conf</code> file from that directory. If
714 this file contains a <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>
715 directive which contains a different directory from the one
716 obtained from the registry key above, Apache will forget the
717 registry key and use the directory from the configuration file. If
718 you copy the Apache directory or configuration files to a new
719 location it is vital that you update the
720 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> directive in the
721 <code>httpd.conf</code> file to reflect the new location.</p>
722 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
723 <div class="section">
724 <h2><a name="test" id="test">Testing the Installation</a></h2>
727 <p>After starting Apache (either in a console window or as a
728 service) it will be listening on port 80 (unless you changed the
729 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> directive in the
730 configuration files or installed Apache only for the current user).
731 To connect to the server and access the default page, launch a
732 browser and enter this URL:</p>
734 <div class="example"><p><code>
738 <p>Apache should respond with a welcome page and you should see
739 "It Works!". If nothing happens or you get an error, look in the
740 <code>error.log</code> file in the <code>logs</code> subdirectory.
741 If your host is not connected to the net, or if you have serious
742 problems with your DNS (Domain Name Service) configuration, you
743 may have to use this URL:</p>
745 <div class="example"><p><code>
749 <p>If you happen to be running Apache on an alternate port, you
750 need to explicitly put that in the URL:</p>
752 <div class="example"><p><code>
753 http://127.0.0.1:8080/
756 <p>Once your basic installation is working, you should configure it
757 properly by editing the files in the <code>conf</code> subdirectory.
758 Again, if you change the configuration of the Windows NT service
759 for Apache, first attempt to start it from the command line to
760 make sure that the service starts with no errors.</p>
762 <p>Because Apache <strong>cannot</strong> share the same port with
763 another TCP/IP application, you may need to stop, uninstall or reconfigure
764 certain other services before running Apache. These conflicting
765 services include other WWW servers, some firewall implementations,
766 and even some client applications (such as Skype) which will use port
767 80 to attempt to bypass firewall issues.</p>
768 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
769 <div class="section">
770 <h2><a name="windrivemap" id="windrivemap">Configuring Access to Network Resources</a></h2>
773 <p>Access to files over the network can be specified using two
774 mechanisms provided by Windows:</p>
777 <dt>Mapped drive letters</dt>
778 <dd>e.g., <code>Alias /images/ Z:/</code></dd>
781 <dd>e.g., <code>Alias /images/ //imagehost/www/images/</code></dd>
784 <p>Mapped drive letters allow the administrator to maintain the
785 mapping to a specific machine and path outside of the Apache httpd
786 configuration. However, these mappings are associated only with
787 interactive sessions and are not directly available to Apache httpd
788 when it is started as a service. <strong>Use only UNC paths for
789 network resources in httpd.conf</strong> so that the resources can
790 be accessed consistently regardless of how Apache httpd is started.
791 (Arcane and error prone procedures may work around the restriction
792 on mapped drive letters, but this is not recommended.)</p>
794 <div class="example"><h3>Example DocumentRoot with UNC path</h3><p><code>
795 <pre class="prettyprint lang-config">
796 DocumentRoot //dochost/www/html/
801 <div class="example"><h3>Example DocumentRoot with IP address in UNC path</h3><p><code>
802 <pre class="prettyprint lang-config">
803 DocumentRoot //192.168.1.50/docs/
808 <div class="example"><h3>Example Alias and corresponding Directory with UNC path</h3><p><code>
809 <pre class="prettyprint lang-config">
810 Alias /images/ //imagehost/www/images/
812 <Directory //imagehost/www/images/>
819 <p>When running Apache httpd as a service, you must create a
820 separate account in order to access network resources, as described
823 <div class="bottomlang">
824 <p><span>Available Languages: </span><a href="../en/platform/windows.html" title="English"> en </a> |
825 <a href="../ko/platform/windows.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
826 </div><div id="footer">
827 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
828 <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><script type="text/javascript">
829 if (typeof(prettyPrint) !== undefined) {