mirror of
https://github.com/apache/httpd.git
synced 2025-05-28 13:41:30 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@559987 13f79535-47bb-0310-9956-ffa450edef68
690 lines
25 KiB
XML
690 lines
25 KiB
XML
<?xml version="1.0" encoding="EUC-KR" ?>
|
|
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
|
|
<!-- English Revision: 105989:559983 (outdated) -->
|
|
|
|
<!--
|
|
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="windows.xml.meta">
|
|
<parentdocument href="./">Platform Specific Notes</parentdocument>
|
|
|
|
<title>Microsoft Windows에서 아파치 사용법</title>
|
|
|
|
<summary>
|
|
|
|
<p>이 문서는 Microsoft Windows에서 아파치 2.0을 설치, 설정,
|
|
실행하는 방법을 설명한다. 잘못된 부분이 있거나 다른 방법으로
|
|
도움을 주려면, <a
|
|
href="http://httpd.apache.org/bug_report.html">버그 보고
|
|
페이지</a>를 사용하길 바란다.</p>
|
|
|
|
<p>이 문서는 아파치 바이너리 배포본을 설치한다고 가정한다.
|
|
(아마도 개발 혹은 버그를 찾기위해) 직접 아파치를 컴파일하려면
|
|
<a href="win_compiling.html">Microsoft Windows용 아파치
|
|
컴파일</a>을 참고하라.</p>
|
|
|
|
<p><strong>현재 Microsoft Windows 운영체제군의 버전 정책상
|
|
이 문서는 다음과 같이 구분한다:</strong></p>
|
|
<ul>
|
|
<li><strong>Windows NT:</strong> Windows NT 커널을 기반으로
|
|
하는 모든 Windows 버전을 의미한다. Windows NT, Windows
|
|
2000, Windows XP, Windows .Net Server 2003을 지칭한다.</li>
|
|
<li><strong>Windows 9x:</strong> 소비자 중심의 오래된
|
|
Windows 버전을 뜻한다. Windows 95 (OSR2 포함), Windows
|
|
98, Windows ME를 지칭한다.</li>
|
|
</ul>
|
|
|
|
</summary>
|
|
|
|
<section id="req">
|
|
<title>운영체제 요구조건</title>
|
|
|
|
<p>아파치 2.0을 실행하기위한 기본 Windows 플래폼은 Windows
|
|
NT이다. 바이너리 설치프로그램은 Intel과 AMD와 같은 x86 개열
|
|
프로세서에서만 동작한다. 아파치는 Windows 9x에서 충분히
|
|
검사하지 않았기때문에 절대로 실제 서비스에 사용하지 않길
|
|
바란다.
|
|
</p>
|
|
|
|
<p>운영체제에 설치한 TCP/IP 네트워크가 동작해야 한다. Windows
|
|
95에서 실행한다면, Winsock 2 업그레이드를 설치해야 한다.
|
|
Windows 95용 Winsock 2는 <a
|
|
href="http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp">여기</a>에서
|
|
다운받을 수 있다.
|
|
</p>
|
|
|
|
<p>Windows NT 4.0을 사용한다면 서비스팩 4의 TCP/IP 문제와
|
|
Winsock 문제가 다음 서비스팩에서 해결되었기때문에, 서비스팩
|
|
6을 설치하길 적극 권한다.</p>
|
|
</section>
|
|
|
|
<section id="down">
|
|
<title>Windows용 아파치 다운로드</title>
|
|
|
|
<p>아파치 웹서버 <a
|
|
href="http://httpd.apache.org/download.cgi">http://httpd.apache.org/download.cgi</a>에서
|
|
아파치 최신 버전에 대한 정보를 얻을 수 있다. 여기에는 최신
|
|
발표판과 알파 혹은 베타 테스트버전과, 아파치 웹서버를 다운로드할
|
|
수 있는 HTTP 미러와 FTP 미러 목록이 있다. 빠르고 안정하게
|
|
다운받으려면 가까운 미러를 사용하길 바란다.</p>
|
|
|
|
<p>Windows에 설치하려면 확장자가 <code>.msi</code>인 Windows용
|
|
아파치 버전을 다운받아야 한다. 이 파일은 막바로 실행할 수
|
|
있는 아파치를 저장한 Microsoft 설치파일이다. 따로 소스코드만
|
|
묶어둔 <code>.zip</code> 파일이 있다. Microsoft Visual C++
|
|
(Visual Studio)을 사용하여 직접 아파치를 컴파일할 수도 있다.</p>
|
|
</section>
|
|
|
|
<section id="inst">
|
|
<title>Windows용 아파치 설치하기</title>
|
|
|
|
<p>설치하려면 Microsoft Installer 1.2 이상 버전이 필요하다.
|
|
Windows 9x를 사용한다면 <a
|
|
href="http://www.microsoft.com/downloads/release.asp?ReleaseID=32831">여기</a>에서
|
|
Microsoft Installer를 2.0 버전으로 업그레이드할 수 있고,
|
|
Windows NT 4.0과 2000을 사용한다면 <a
|
|
href="http://www.microsoft.com/downloads/release.asp?ReleaseID=32832">여기</a>에서
|
|
2.0 버전 업데이트를 구할 수 있다. Windows XP는 업데이트할
|
|
필요가 없다.</p>
|
|
|
|
<p>바이너리 설치파일로는 같은 컴퓨터에 서로 다른 아파치
|
|
2.0 버전을 설치할 수 없음을 주의하라. 그러나 1.3
|
|
버전<strong>과</strong> 2.0 버전은 같은 컴퓨터에 아무 문제없이
|
|
설치할 수 있다. 같은 컴퓨터에 두가지 다른 2.0 버전을 설치하려면
|
|
<a href="win_compiling.html">소스를 컴파일하여 아파치를
|
|
설치</a>해야 한다.</p>
|
|
|
|
<p>위에서 다운받은 아파치 <code>.msi</code> 파일을 실행한다.
|
|
설치할때 다음과 같은 것을 물어본다:</p>
|
|
|
|
<ol>
|
|
<li><p><strong>네트워크 도메인 (Network Domain).</strong>
|
|
등록된 서버의 DNS 도메인을 입력한다. 예를 들어, 서버의
|
|
전체 DNS 이름이 <code>server.mydomain.net</code>이라면
|
|
여기에 <code>mydomain.net</code>을 입력한다.</p></li>
|
|
|
|
<li><p><strong>서버명 (Server Name).</strong> 서버의 전체
|
|
DNS 이름. 위의 경우 여기에 <code>server.mydomain.net</code>을
|
|
입력한다.</p></li>
|
|
|
|
<li><p><strong>관리자 전자우편 주소 (Administrator's Email
|
|
Address).</strong> 여기에 서버 관리자나 웹마스터의 전자우편
|
|
주소를 입력한다. 기본적으로 클라이언트에게 보내는 오류문에
|
|
이 주소를 기록한다.</p></li>
|
|
|
|
<li><p><strong>사용자 대상 (For whom to install
|
|
Apache)</strong> 새로 설치하는 아파치가 80번 포트에서
|
|
요청을 기다리게 하려면 <code>for All Users, on Port 80,
|
|
as a Service - Recommended</code> (모든 사용자, 80번 포트,
|
|
service로 - 추천)를 선택한다. 아파치를 service로 실행한다
|
|
(즉, 아파치는 서버에 로그인한 사람이 없어도 실행된다).
|
|
개인적으로 테스트해보거나 이미 80번 포트를 사용하는 다른
|
|
웹서버가 있다면 <code>only for the Current User, on Port
|
|
8080, when started Manually</code> (현재 사용자만, 8080번
|
|
포트, 직접 시작)를 선택한다.</p></li>
|
|
|
|
<li><p><strong>설치 종류 (The installation type).</strong>
|
|
모듈 개발에 필요한 소스코드와 라이브러리를 제외한 모든
|
|
것을 설치하려면 <code>Typical</code>을 선택한다.
|
|
<code>Custom</code>을 선택하면 설치할 내용을 지정할 수
|
|
있다. 전체 설치시 디스크에 빈 공간이 약 13 메가바이트
|
|
정도 필요하다. 이 수치는 웹사이트 크기를 <em>제외한</em>
|
|
것이다.</p></li>
|
|
|
|
<li><p><strong>설치 장소 (Where to install).</strong>
|
|
기본 경로는 <code>C:\Program Files\Apache Group</code>이고,
|
|
이곳에 <code>Apache2</code>라는 디렉토리를 만든다.</p></li>
|
|
</ol>
|
|
|
|
<p>설치할 동안 아파치는 <code>conf</code> 하위디렉토리에
|
|
있는 파일들을 선택한 설치 디렉토리에 맞게 구성한다. 그러나
|
|
이 디렉토리에 설정파일이 이미 있다면 그대로 둔다. 대신,
|
|
해당 파일의 새로운 복사본에 확장자 <code>.default</code>를
|
|
붙인다. 예를 들어, <code>conf\httpd.conf</code>가 이미 있다면
|
|
<code>conf\httpd.conf.default</code>로 이름을 변경한다.
|
|
설치후 <code>.default</code> 파일의 설정을 직접 살펴보고,
|
|
필요하다면 기존 설정파일을 수정해야 한다.</p>
|
|
|
|
<p>또, 이미 <code>htdocs\index.html</code>이라는 파일이
|
|
있다면 그대로 둔다 (<code>index.html.default</code>라고
|
|
복사하지도 않는다). 즉, 기존에 아파치가 설치되있더라도 안전하게
|
|
아파치를 새로 설치할 수 있다. 물론 설치하기 전에 서버를
|
|
중단하고, 설치후 새로운 서버를 시작해야 한다.</p>
|
|
|
|
<p>아파치 설치후 필요하다면 <code>conf</code> 하위디렉토리에
|
|
있는 설정파일을 수정해야 한다. 파일은 아파치를 설치한 디렉토리의
|
|
<code>htdocs</code> 하위디렉토리에 있는 문서를 서비스하도록
|
|
설정되있다. 실제로 아파치를 사용하기 전에 설정해야 할 옵션이
|
|
많다. 그러나 빨리 실행해볼 수 있도록 기본 설정파일로도 동작한다.</p>
|
|
</section>
|
|
|
|
<section id="cust">
|
|
<title>Windows용 아파치 설정하기</title>
|
|
|
|
<p>아파치는 <code>conf</code> 하위디렉토리에 있는 파일로
|
|
설정한다. 이 파일은 유닉스용과 같지만, Windows용 아파치
|
|
특유의 지시어가 몇개 있다. 사용가능한 모든 지시어를 보려면
|
|
<a href="../mod/directives.html">지시어 목록</a>을 참고하라.</p>
|
|
|
|
<p>Windows용 아파치의 주된 차이점은:</p>
|
|
<ul>
|
|
<li><p>Windows용 아파치는 다중쓰레드 방식을 사용하기때문에,
|
|
유닉스와 달리 요청마다 다른 프로세스를 사용하지 않는다.
|
|
대신 아파치 프로세스는 항상, 부모 프로세스와 요청을 처리하는
|
|
자식 프로세스, 2개이다. 자식 프로세스에 있는 여러 쓰레드들이
|
|
요청들을 처리한다.
|
|
</p>
|
|
|
|
<p>프로세스 관리 지시어도 다르다:</p>
|
|
|
|
<p><directive
|
|
module="mpm_common">MaxRequestsPerChild</directive>: 유닉스와
|
|
같이, 자식 프로세스가 요청을 얼마만큼 처리하고 죽을지를
|
|
조정한다. 그러나 유닉스와 달리 프로세스가 한번에 한 요청만을
|
|
처리하지않고 한번에 모든 요청을 서비스하기때문에, 설정한다면
|
|
매우 큰 값을 설정하길 권한다. 권장하는 기본값
|
|
<code>MaxRequestsPerChild 0</code>을 사용하면 자식 프로세스는
|
|
죽지않고 영원히 요청을 서비스한다.</p>
|
|
|
|
<note type="warning"><strong>경고: 자식 프로세스는 새로
|
|
시작할 때마다 서버설정파일을 새로 읽는다.
|
|
<code>httpd.conf</code>를 수정했다면, 자식 프로세스가
|
|
시작하지 않거나 예기치않은 결과가 발생할 수 있다.</strong></note>
|
|
|
|
<p><directive module="mpm_common">ThreadsPerChild</directive>:
|
|
이 지시어는 새로 추가되었다. 이 지시어는 서버가 사용할
|
|
쓰레드 개수를 지정한다. 이 값이 서버가 한번에 처리할 수
|
|
있는 최대 연결개수이기때문에, 사이트에 접속량이 많다면
|
|
충분히 큰 값을 설정해야 한다. 권장하는 기본값은
|
|
<code>ThreadsPerChild 50</code>이다.</p></li>
|
|
|
|
<li><p>파일명을 아규먼트로 받는 지시어는 유닉스 파일명이
|
|
아닌 Windows 파일명을 사용해야 한다. 그러나 아파치 내부에서
|
|
유닉스식 이름을 사용하기때문에 백슬래쉬가 아닌 슬래쉬를
|
|
사용해야 한다. 드라이브 문자를 사용할 수 있다. 드라이브를
|
|
지정하지 않으면 아파치 실행파일이 있는 드라이브를
|
|
사용한다.</p></li>
|
|
|
|
<li><p>Windows용 아파치는 서버를 다시 컴파일하지 않고
|
|
실행중에 모듈을 읽어들일 수 있다. 기본값으로 아파치를
|
|
컴파일하면 <code>\Apache2\modules</code> 디렉토리에 여러
|
|
선택가능한 모듈을 설치한다. 이 모듈 혹은 다른 모듈을
|
|
사용하려면 새로 생긴 <directive
|
|
module="mod_so">LoadModule</directive> 지시어를 사용한다.
|
|
예를 들어, status 모듈을 사용한다면
|
|
(<code>access.conf</code>에 status관련 지시어와 함께)
|
|
아래와 같이 설정한다:</p>
|
|
|
|
<example>
|
|
LoadModule status_module modules/mod_status.so
|
|
</example>
|
|
|
|
<p><a href="../mod/mod_so.html#creating">읽어들일 수 있는
|
|
모듈 만들기</a>에 대한 정보도 있다.</p></li>
|
|
|
|
<li><p>아파치는 Microsoft IIS와 다른 Windows 서버가 사용하는
|
|
ISAPI (Internet Server Application Programming Interface)
|
|
확장을 (즉, 인터넷 서버 프로그램) 읽어들일 수도 있다.
|
|
<a href="../mod/mod_isapi.html">더 자세한 정보가 있다</a>.
|
|
아파치는 ISAPI 필터를 읽어들일 수 <strong>없음을</strong>
|
|
주의하라.</p></li>
|
|
|
|
<li><p>CGI 스크립트를 사용한다면 <directive
|
|
module="core">ScriptInterpreterSource</directive> 지시어를
|
|
사용하여 아파치가 스크립트의 인터프리터를 찾는 방법을
|
|
설정할 수 있다.</p></li>
|
|
|
|
<li><p>Windows에서 <code>.htaccess</code>와 같은 파일명을
|
|
다루기 힘드므로, <directive
|
|
module="core">AccessFilename</directive> 지시어를 사용하여
|
|
디렉토리별 설정파일 이름을 변경하면 편하다.</p></li>
|
|
|
|
<li><p>Windows NT라면 아파치 시작시 발생한 오류를 Windows
|
|
이벤트 로그에 기록한다. 그래서 아파치가 보통 사용하는
|
|
<code>error.log</code> 파일을 사용할 수 없는 경우에 대비한다.
|
|
Windows 이벤트 로그는 Windows NT 4.0에서는 이벤트 뷰어
|
|
프로그램으로, 최신 Windows 버전에서는 이벤트 뷰어 MMC
|
|
스냅인에서 볼 수 있다.</p>
|
|
|
|
<note><strong>Windows 9x에는 Windows 이벤트 로그가 없기때문에
|
|
시작시 발생한 오류를 기록하지 않는다.</strong></note></li>
|
|
</ul>
|
|
|
|
</section>
|
|
|
|
<section id="winsvc">
|
|
<title>아파치를 Service로 실행하기</title>
|
|
|
|
<p>Windows NT에서는 아파치를 service로 실행할 수 있다. Windows
|
|
9x에는 매우 실험적인 방법으로 비슷한 기능을 지원한다.</p>
|
|
|
|
<p>설치시 자동으로 아파치를 service로 설치할 수 있다. "모든
|
|
사용자"를 선택하면, 아파치 service가 만들어진다. "현재
|
|
사용자만"을 선택하더라도 설치후 직접 아파치를 service로
|
|
등록할 수 있다. service를 설치하려면 Administrators 그룹의
|
|
구성원이어야 한다.</p>
|
|
|
|
<p>아파치에는 Apache Service Monitor라는 도구가 있다. 이
|
|
도구를 사용하면 네트웍에 있는 다른 컴퓨터에 설치된 아파치
|
|
상태도 확인하고 관리할 수 있다. monitor로 아파치 service를
|
|
관리하려면 먼저 service를 (설치시 자동으로 혹은 직접) 설치해야
|
|
한다.
|
|
</p>
|
|
|
|
<p>아파치 <code>bin</code> 하위디렉토리에서 명령행 프롬프트에
|
|
다음과 같이 입력하면 아파치를 Windows NT service로 설치한다:</p>
|
|
|
|
<example>
|
|
apache -k install
|
|
</example>
|
|
|
|
<p>설치할 service 이름을 지정하고 싶다면 다음 명령어를 사용한다.
|
|
컴퓨터에 아파치가 여러개 설치되있다면 이름을 다르게 주어야
|
|
한다.</p>
|
|
|
|
<example>
|
|
apache -k install -n "MyServiceName"
|
|
</example>
|
|
|
|
<p>service가 사용할 설정파일을 직접 지정하려면 다음과 같이
|
|
한다:</p>
|
|
|
|
<example>
|
|
apache -k install -n "MyServiceName" -f "c:\files\my.conf"
|
|
</example>
|
|
|
|
<p><code>-k install</code> 외에 다른 파라미터를 사용하지
|
|
않으면, service 이름은 <code>Apache2</code>가 되고 설정파일은
|
|
<code>conf\httpd.conf</code>가 된다.
|
|
</p>
|
|
|
|
<p>아파치 service를 제거하기 쉽다. 간단히:</p>
|
|
|
|
<example>
|
|
apache -k uninstall
|
|
</example>
|
|
|
|
<p>다음과 같이 제거할 아파치 service를 지정할 수 있다:</p>
|
|
|
|
<example>
|
|
apache -k uninstall -n "MyServiceName"
|
|
</example>
|
|
|
|
<p>보통 아파치 service 시작, 재시작, 종료는 Apache Service
|
|
Monitor나 <code>NET START Apache2</code>, <code>NET STOP
|
|
Apache2</code> 같은 명령어 혹은 Windows 서비스 관리창에서
|
|
한다. 어떤 방법을 사용하든지 아파치 service를 시작하기 전에
|
|
설정파일을 검사해봐야 한다:</p>
|
|
|
|
<example>
|
|
apache -n "MyServiceName" -t
|
|
</example>
|
|
|
|
<p>명령행 옵션으로도 아파치 service를 조정할 수 있다. 설치한
|
|
아파치 serivce를 시작하려면:</p>
|
|
|
|
<example>
|
|
apache -k start
|
|
</example>
|
|
|
|
<p>명령행 옵션으로 아파치 service를 종료하려면:</p>
|
|
|
|
<example>
|
|
apache -k stop
|
|
</example>
|
|
|
|
<p>혹은</p>
|
|
|
|
<example>
|
|
apache -k shutdown
|
|
</example>
|
|
|
|
<p>실행중인 service를 재시작하여 설정파일을 다시 읽도록
|
|
할 수 있다:</p>
|
|
|
|
<example>
|
|
apache -k restart
|
|
</example>
|
|
|
|
<p>기본적으로 모든 아파치 service는 시스템 사용자
|
|
(<code>LocalSystem</code> 계정) 권한으로 실행하도록 등록된다.
|
|
Windows 보안구조상 <code>LocalSystem</code> 계정은 파일시스템,
|
|
named pipes, DCOM, secure RPC 등 어떤 방법을 사용하든지
|
|
네트웍에 접근할 수 없다. 그러나 해당 컴퓨터에서는 많은 권한을
|
|
가진다.
|
|
</p>
|
|
|
|
<note type="warning"><strong><code>LocalSystem</code> 계정에게
|
|
네트웍 권한을 절대로 주지 마라! 아파치가 네트웍 자원에 접근해야
|
|
한다면, 아래에서 설명하는 방법으로 아파치를 위한 별도의
|
|
계정을 만들어라.</strong></note>
|
|
|
|
<p>아파치 service를 실행하기위한 별도의 계정을 만들 수도
|
|
있다. 특히 아파치가 네트웍 자원에 접근해야 한다면 이 방법을
|
|
강력히 권한다.</p>
|
|
|
|
<ol>
|
|
<li>일반 도메인 사용자 계정을 만들고 암호를 기억하라.</li>
|
|
|
|
<li>새로 만든 계정에 <code>서비스로 로그온</code>와
|
|
<code>운영 체제의 일부로 활동</code> 권한을
|
|
부여한다. Windows NT 4.0에서는 User Manager for Domains에서
|
|
권한을 부여할 수 있고, Windows 2000과 XP에서는 아마도
|
|
"그룹 정책"을 사용해야 한다. "로컬 보안 설정" MMC
|
|
스냅인에서 직접 설정해줄 수도 있다.
|
|
</li>
|
|
|
|
<li>새로 만든 계정이 Users 그룹에 속하는지 확인한다.</li>
|
|
|
|
<li>모든 문서와 스크립트 폴더에 (예를 들어
|
|
<code>htdocs</code>와 <code>cgi-bin</code>) 대해 읽기 및
|
|
실행 (RX) 권한을 부여한다.</li>
|
|
|
|
<li>아파치 <code>logs</code> 디렉토리에 수정 (RWXD) 권한을
|
|
부여한다.</li>
|
|
|
|
<li><code>Apache.exe</code> 실행파일에 읽기 및 실행 (RX)
|
|
권한을 부여한다.</li>
|
|
</ol>
|
|
|
|
<note>아파치 service를 실행하는 사용자에게 최소한 수정 (RWXD)
|
|
권한이 필요한 <code>logs</code> 하위디렉토리를 제외하고
|
|
Apache2 디렉토리 전체에 읽기 및 실행 (RX) 권한을 부여하는
|
|
것이 좋다.</note>
|
|
|
|
<p>계정에 "로컬 로그온"과 "서비스로 로그온" 권한이 있다면,
|
|
그 계정으로 로그온하여 계정이 스크립트를 실행하고 웹페이지를
|
|
읽으며 콘솔창에서 아파치를 시작할 수 있는지 검사해볼 수
|
|
있다. 여기서 문제가 없다면 아파치를 service로 실행해도 문제가
|
|
없다.</p>
|
|
|
|
<note><strong>Error code 2186</strong>은 아파치가 필요한
|
|
네트웍 자원에 접근할 수 없다는 말로 service의 "로그온"
|
|
설정을 확인하라. 또, 아파치를 실행하는 계정의 권한을
|
|
살펴봐라.</note>
|
|
|
|
<p>아파치를 service로 실행하면 Windows Service Control
|
|
Manager에서 오류문을 볼 수 있다. 예를 들어, 제어판에서
|
|
"서비스"를 사용하여 아파치를 시작하는 경우 다음과 같은 문구가
|
|
나올 수 있다:</p>
|
|
|
|
<example>
|
|
Could not start the Apache2 service on \\COMPUTER <br />
|
|
Error 1067; The process terminated unexpectedly.
|
|
</example>
|
|
|
|
<p>아파치 service를 시작할때 문제가 있으면 일반적인 이런
|
|
오류가 나온다. 실제 어디가 문제인지 알려면 아파치를 콘솔
|
|
프로그램으로 실행해보라.</p>
|
|
|
|
<p>Windows 9x에서 아파치는 Windows NT의 service와 비슷한
|
|
방법을 지원한다. 그러나 <strong>매우 실험적인</strong> 기능이다.
|
|
실제 서비스에 사용할만큼 안정적이지 않고 앞으로 개선될지
|
|
보장할 수도 없다. 위험하므로 혹시나 사용한다면 주의해서
|
|
사용해야 한다!</p>
|
|
|
|
<p>두가지 service의 중요한 차이점은 다음과 같다:</p>
|
|
|
|
<ul>
|
|
<li><p>아파치가 성공적으로 시작하면 배경에서 실행한다.
|
|
예를 들어, 데스크탑에 바로가기를 만들어서 다음 명령을
|
|
실행하는 경우,</p>
|
|
|
|
<example>
|
|
apache -n "MyServiceName" -k start
|
|
</example>
|
|
|
|
<p>service가 성공적으로 시작하면 콘솔창이 생겼다가 금방
|
|
사라진다. httpd.conf 설정파일에 잘못된 내용이 있는 등
|
|
아파치 시작시 오류가 발생하면 콘솔창을 계속 보인다. 콘솔창은
|
|
문제의 원인을 파악하는데 도움을 주는 오류문을 보여준다.</p></li>
|
|
|
|
<li><p>Windows 9x는 <code>NET START</code>와 <code>NET
|
|
STOP</code> 명령어를 지원하지 않는다. 명령프롬프트에서
|
|
<code>-k</code> 옵션을 사용하여 아파치 service를 조정해야
|
|
한다.
|
|
</p></li>
|
|
|
|
<li><p>
|
|
아파치와 Windows 9x는 네트웍 권한을 가진 특정 사용자로
|
|
아파치를 실행하지 못한다. 사실 Windows 9x는 보안을 제공하지도
|
|
않는다. 이것이 바로 Apache Software Foundation이 Windows
|
|
9x 시스템을 공개 웹서버로 사용하길 권하지 않는 이유다.
|
|
사용자가 웹 컨텐츠를 개발하고 아파치 서버 학습을 돕기위해,
|
|
아니면 안전한 사설 네트웍에 위치할 인트라넷 서버를 위해,
|
|
Windows 9x를 지원할 뿐이다.</p></li>
|
|
|
|
</ul>
|
|
|
|
<p>아파치가 콘솔 프로그램으로 동작함을 확인하였다면 Windows
|
|
NT에서와 같은 명령어로 가상 service를 설치, 조절, 제거할
|
|
수 있다. 또, Apache Service Monitor를 사용하여 Windows 9x
|
|
가상 service를 관리할 수 있다.</p>
|
|
|
|
</section>
|
|
|
|
<section id="wincons">
|
|
<title>아파치를 콘솔 프로그램으로 실행하기</title>
|
|
|
|
<p>일반적으로 아파치를 service로 실행하길 권한다. 그러나
|
|
명령행에서 실행하는게 편한 경우가 있다 (Windows 9x에서는
|
|
service를 안정적으로 지원하지 않기때문에 명령행에서 아파치를
|
|
실행하는 방법을 권한다).</p>
|
|
|
|
<p>아파치를 콘솔 프로그램으로 실행하려면, 명령행에서 다음
|
|
명령어를 사용한다:</p>
|
|
|
|
<example>
|
|
apache
|
|
</example>
|
|
|
|
<p>아파치는 Control-C를 눌러서 정지할 때까지 실행된다.</p>
|
|
|
|
<p>또, <code>시작 메뉴 --> 프로그램 --> Apache HTTP
|
|
Server 2.0.xx --> Control Apache Server</code>에 설치된
|
|
Start Apache in Console 바로가기로 아파치를 실행할 수 있다.
|
|
바로가기를 실행하면 콘솔창을 열고 그 안에서 아파치를 실행한다.
|
|
아파치를 service로 설치하지 않았다면, 아파치를 실행하는
|
|
콘솔창에서 Control-C를 눌러 아파치를 중단할때까지 창이 떠있다.
|
|
이 경우 서버는 몇초안에 종료한다. 그러나, 아파치를 service로
|
|
설치하였다면 바로가기는 service를 시작한다. 아파치 service가
|
|
이미 실행중이라면 바로가기는 아무일도 하지 않는다.</p>
|
|
|
|
<p>다른 콘솔창을 열고 다음과 같이 입력하여 실행중인 아파치를
|
|
종료할 수 있다:</p>
|
|
|
|
<example>
|
|
apache -k shutdown
|
|
</example>
|
|
|
|
<p>이 방법은 아파치가 현재 작업을 마치고 점잖게 종료할 수
|
|
있기때문에 Control-C 보다 낫다.</p>
|
|
|
|
<p>또, 아파치를 재시작할 수 있다. 이 경우 설정파일을 다시
|
|
읽는다. 진행중인 작업을 중간에 끊지않고 완료한다. 아파치를
|
|
재시작하려면:</p>
|
|
|
|
<example>
|
|
apache -k restart
|
|
</example>
|
|
|
|
<note>유닉스용 아파치에 익숙한 사람을 위해: 이 명령어는
|
|
<code>kill -TERM <em>pid</em></code>나 <code>kill -USR1
|
|
<em>pid</em></code>의 Windows판이다. 명령행 옵션
|
|
<code>-k</code>는 유닉스 <code>kill</code> 명령어 이름을
|
|
본따 지었다.</note>
|
|
|
|
<p>아파치 콘솔창이 즉시 혹은 시작후 갑자기 닫치면 시작 메뉴
|
|
--> 프로그램의 명령 프롬프트를 실행한다. 아파치를 설치한
|
|
폴더로 가서 <code>apache</code> 명령어를 실행해보고 발생한
|
|
오류문을 살펴본다. 그리고 logs 폴더로 가서, 설정파일이
|
|
잘못되었는지 <code>error.log</code> 파일을 살펴본다. 아파치를
|
|
설치할때 기본값을 사용했다면 다음과 같다:</p>
|
|
|
|
<example>
|
|
c: <br />
|
|
cd "\Program Files\Apache Group\Apache2\bin" <br />
|
|
apache
|
|
</example>
|
|
|
|
<p>아파치가 정지할 때까지 기다리거나 Control-C를 누른다.
|
|
그리고 다음과 같이 입력한다:</p>
|
|
|
|
<example>
|
|
cd ..\logs <br />
|
|
more < error.log
|
|
</example>
|
|
|
|
<p>아파치를 다룰때 아파치가 어떻게 설정파일을 찾는지 아는
|
|
것이 중요하다. 두가지 방법으로 명령행에서 설정파일을 지정할
|
|
수 있다:</p>
|
|
|
|
<ul>
|
|
<li><p><code>-f</code>는 설정파일의 절대경로 혹은 상대경로를
|
|
지정한다:</p>
|
|
|
|
<example>
|
|
apache -f "c:\my server files\anotherconfig.conf"
|
|
</example>
|
|
|
|
<p>혹은</p>
|
|
|
|
<example>
|
|
apache -f files\anotherconfig.conf
|
|
</example></li>
|
|
|
|
<li><p><code>-n</code>은 아파치 service를 선택하고, 해당
|
|
service의 설정파일을 사용한다:</p>
|
|
|
|
<example>
|
|
apache -n "MyServiceName"
|
|
</example>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>두 경우 모두 설정파일이 적절한 <directive
|
|
module="core">ServerRoot</directive>를 지정해야 한다.</p>
|
|
|
|
<p><code>-f</code>나 <code>-n</code>으로 설정파일을 지정하지
|
|
않으면, 아파치는 <code>conf\httpd.conf</code>와 같이 서버에
|
|
컴파일된 파일명을 사용한다. 이 기본 경로는 설치 디렉토리에
|
|
상대적이다. 다음과 같이 <code>-V</code> 옵션으로 아파치를
|
|
실행하면 <code>SERVER_CONFIG_FILE</code>이란 항목에서 서버가
|
|
사용할 설정파일을 알 수 있다:</p>
|
|
|
|
<example>
|
|
apache -V
|
|
</example>
|
|
|
|
<p>아파치는 다음 순서대로 <directive
|
|
module="core">ServerRoot</directive>를 찾는다:</p>
|
|
|
|
<ol>
|
|
<li><code>-C</code> 명령행 옵션에 사용한 <directive
|
|
module="core">ServerRoot</directive> 지시어.</li>
|
|
|
|
<li><code>-d</code> 명령행 옵션.</li>
|
|
|
|
<li>현재 작업 디렉토리.</li>
|
|
|
|
<li>바이너리 설치를 했다면 설치할때 만든 registry 항목.</li>
|
|
|
|
<li>서버에 컴파일된 server root. 기본값은
|
|
<code>/apache</code>이고, <code>apache -V</code>를 실행하면
|
|
<code>HTTPD_ROOT</code>라는 항목에서 확인할 수 있다.</li>
|
|
</ol>
|
|
|
|
<p>설치할때 윈도우즈 레지스트리에 버전 특유의 레지스트리
|
|
키를 만든다. 키의 위치는 설치 종류에 따라 다르다. install
|
|
Apache for all users를 선택하였다면
|
|
<code>HKEY_LOCAL_MACHINE</code> 아래에 다음과 같은 키를
|
|
만든다 (물론 버전번호는 아파치 버전마다 다르다):
|
|
</p>
|
|
|
|
<example>
|
|
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43
|
|
</example>
|
|
|
|
<p>"모든 사용자"를 대상으로 아파치를 설치하였다면
|
|
<code>HKEY_CURRENT_USER</code> 아래 키가 생긴다. 내용은
|
|
현재 로그온한 사용자에 따라 다르다:</p>
|
|
|
|
<example>
|
|
HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43
|
|
</example>
|
|
|
|
<p>키 이름이 서버에 컴파일되기때문에 현재 버전을 건드리지않고
|
|
새로운 버전을 설치하여 테스트해볼 수 있다. 물론 새 버전을
|
|
다른 버전과 같은 디렉토리에 설치하지않도록 주의해야 한다.</p>
|
|
|
|
<p>바이너리 설치를 하지 않은 경우 아파치는 레지스트리 키가
|
|
없다고 불평할 수 있다. 서버가 다른 방법으로 설정파일을 찾을
|
|
수 있다면 이 경고를 무시해도 된다.</p>
|
|
|
|
<p>키의 값은 <directive module="core">ServerRoot</directive>
|
|
디렉토리이며, 이 디렉토리에 <code>conf</code>라는 하위디렉토리가
|
|
있다. 아파치를 시작하면 이 하위디렉토리에서
|
|
<code>httpd.conf</code> 파일을 읽는다. 이 파일에 나오는
|
|
<directive module="core">ServerRoot</directive> 지시어가
|
|
레지스트리 키에 나온 디렉토리와 다르다면, 아파치는 레지스트리에서
|
|
얻은 값을 무시하고 앞으로 설정파일에 나온 디렉토리를 사용한다.
|
|
아파치 디렉토리나 설정파일을 다른 장소로 복사하면 반드시
|
|
<code>httpd.conf</code> 파일에 있는 <directive
|
|
module="core">ServerRoot</directive> 지시어를 그 위치로
|
|
수정하라.</p>
|
|
|
|
</section>
|
|
|
|
<section id="test">
|
|
<title>정상적으로 설치되었는지 검사하기</title>
|
|
|
|
<p>(콘솔창이나 service를 통해) 아파치를 시작하면 (설정파일의
|
|
<directive module="mpm_common">Listen</directive> 지시어를
|
|
수정하거나 아파치를 "현재 사용자만" 대상으로 설치하지 않는
|
|
경우) 80번 포트를 기다린다. 브라우저를 시작하고 URL을 입력하여
|
|
서버의 기본 페이지에 접근하다:</p>
|
|
|
|
<example>
|
|
http://localhost/
|
|
</example>
|
|
|
|
<p>아파치는 아파치 설명서 링크가 있는 환영페이지를 보여줘야
|
|
한다. 아무 일도 일어나지 않거나 오류가 나오면, <code>logs</code>
|
|
하위디렉토리에 있는 <code>error.log</code> 파일을 살펴봐라.
|
|
호스트가 네트웍에 연결되있지 않거나 DNS (Domain Name Service)
|
|
설정에 문제가 있다면 다음 URL을 사용해야 한다:</p>
|
|
|
|
<example>
|
|
http://127.0.0.1/
|
|
</example>
|
|
|
|
<p>기본 설치가 동작하면 <code>conf</code> 하위디렉토리에
|
|
있는 파일을 적절히 설정한다. 또, Windows NT 아파치 service
|
|
설정을 수정한 경우 먼저 명령행에서 아파치를 시작하여 오류가
|
|
발생하지않는지 확인해야 한다.</p>
|
|
|
|
<p>아파치가 다른 TCP/IP 프로그램과 같은 포트를 공유할 수
|
|
<strong>없기때문에</strong> 아파치를 시작하기 전에 다른
|
|
서비스를 중단, 제거, 재설정해야 할지도 모른다. 다른 웹서버나
|
|
특정 방화벽 서버스와 충돌할 수 있다.
|
|
</p>
|
|
|
|
</section>
|
|
|
|
</manualpage>
|