Novell NetWare에서 아파치 사용하기
버그 보고 페이지나 dev-httpd 메일링리스트는 아파치 설정과 실행에 대한 질문을 답하지 않는다. 버그를 보고하기 전에 먼저 이 문서와 자주 물어보는 질문 (FAQ) 페이지, 다른 관련문서를 살펴봐라. 그래도 궁금한 점이나 문제가 있다면, NetWare에서 아파치 사용에 대한 어렵고 새로운 질문을 답해줄 많은 아파치 사용자가 있는 novell.devsup.webserver 뉴스그룹에 글을 올리길 바란다.
이 문서는 바이너리 배포본으로 아파치를 설치했다고 가정한다. (아마도 개발에 도움을 주거나 버그를 찾기위해) 직접 아파치를 컴파일하려면 아래 NetWare에서 아파치 컴파일하기 절을 참고하라.
NetWare service pack은 여기에 있다.
최신 service pack이나 최신 버전 NetWare Libraries for C (LibC)를 설치했다면 NetWare 5.1 환경에서도 NetWare용 아파치 2.0을 실행할 수 있다. 경고: NetWare용 아파치 2.0은 이 환경을 고려하지 않았고 테스트하지 않았다.
바이너리로 다운받은 NetWare용 아파치를 설치하는 과정은 다음과 같다 (sys:/apache2
볼륨 최상위 디렉토리에 푼다 (다른 볼륨에 설치해도 된다)apache2.conf
과 파일경로 값을 서버에 알맞게 지정한다SEARCH ADD SYS:\APACHE2
를 추가한다 직접 소스를 컴파일한 경우 NetWare에 아파치를 설치하는 방법은 다음과 같다 (sys:/apache2
라는 디렉토리를 만든다APACHE2.NLM
이라는 디렉토리를 만든다HTDIGEST.NLM
을 SYS:/APACHE2/BIN
라는 디렉토리를 만든다HTTPD-STD.CONF
에 복사하고 파일명을 HTTPD.CONF
디렉토리에 복사한다\HTTPD-2.0\DOCS\ICONS
에 있는 모든 파일과 하위디렉토리를 SYS:/APACHE2/MANUAL
로 복사한다SYS:/APACHE2/LOGS
이란 디렉토리를 만든다SYS:/APACHE2/MODULES
표시를 적절한 설정으로 대체한다SEARCH ADD SYS:\APACHE2
볼륨이 아닌 다른 볼륨에도 아파치를 설치할 수 있다.
makefile 명령어에 "install" 키워드를 사용하면 컴파일시 자동으로 DIST
하위디렉토리에 완전한 배포본을 만든다. makefile로 만든 배포본을 NetWare 볼륨 최상위 디렉토리로 복사하면 아파치가 설치된다 (아래 NetWare용 아파치 컴파일하기 참고).
load address space = apache2 apache2
그러면 아파치를 apache2라는 주소영역에 읽어들인다. NetWare는 여러 아파치를 각각 다른 보호주소영역에 읽어들여서 여러 아파치를 동시에 실행할 수 있다.
지시어를 수정하지 않는한) 포트 80번을 기다린다. 브라우저를 시작하여 서버명 혹은 서버 주소를 입력하면 서버에 접속하여 기본페이지에 접근한다. 아파치 설명서 링크가 있는 환영페이지가 나와야 한다. 아무 일도 없거나 오류가 발생하면 Listenlogs
기본 설치가 동작하면 conf
운영체제 주소영역에서 실행중인 아파치를 내릴려면 콘솔에 다음과 같이 입력한다:
보호주소영역에서 아파치를 실행했다면 unload 명령어에 주소영역을 지정한다:
아파치가 설정파일 위치를 찾는 방법을 알아두어야 한다. 명령행에서 설정파일을 지정하는 방법은 두가지다:
는 특정 설정파일 경로를 지정한다 apache2 -f "vol:/my server/conf/my.conf"
apache -f test/test.conf
이 경우 설정파일은 올바른
로 설정파일명을 지정하지 않으면, 아파치는 서버에 컴파일된 파일명을 (보통 conf/apache2.conf
옵션으로 아파치를 시작하면 SERVERCONFIGFILE
이라는 항목을 보여준다. 아파치는 다음 순서대로
NetWare용 아파치 2.0에는 실행중인 웹서버를 죽이거나 정보를 알려주는 명령행 지시어가 있다. 이들 지시어는 아파치 동작중에만 사용할 수 있다. 지시어 앞에는 APACHE2
기본적으로 이 지시어들은 운영체제 주소영역에서 실행중인 아파치를 대상으로 한다. 아파치가 보호주소영역에서 실행중이라면, -p와 주소영역 이름을 추가한다. 더 많은 정보를 보려면 명령행에 "apache2 Help"를 입력한다.
NetWare용 아파치의 주된 차이점은:
NetWare용 아파치는 다중쓰레드 방식을 사용하기때문에, 유닉스와 같이 요청마다 다른 프로세스를 사용하지 않는다. 대신 여러 쓰레드를 실행한다: 부모 쓰레드와 요청을 처리하는 여러 자식 혹은 worker 쓰레드들.
그러므로 "프로세스"-관리 지시어가 다르다:
- 유닉스와 같이 worker 쓰레드가 요청을 얼마만큼 처리하고 죽을지를 조정한다. 권장하는 기본값 MaxRequestsPerChildMaxRequestsPerChild 0
을 사용하면 쓰레드는 죽지않고 영원히 요청을 서비스한다. 특별한 이유가 없다면 NetWare에서는 이 지시어를 0
- 이 지시어는 서버가 처음에 시작할 쓰레드 개수를 결정한다. 권장하는 기본값은 StartThreadsStartThreads 50
- 서버는 쉬는(idle) 쓰레드 개수가 이 값보다 적으면 worker 쓰레드를 더 만든다. 권장하는 기본값은 MinSpareThreadsMinSpareThreads 10
- 서버는 쉬는 쓰레드 개수가 이 값보다 많으면 worker 쓰레드를 죽이기 시작한다. 권장하는 기본값은 MaxSpareThreadsMaxSpareThreads 100
- 이 지시어는 worker 쓰레드의 최대 개수를 제한한다. 권장하는 기본값은 MaxThreadsThreadsPerChild 250
- 한 worker 쓰레드가 사용할 스택 크기를 지시한다. 권장하는 기본값은 ThreadStackSizeThreadStackSize 65536
아규먼트로 파일명을 받는 지시어에는 유닉스 파일명이 아닌 NetWare 파일명을 사용해야 한다. 그러나 아파치가 내부적으로 유닉스식 파일명을 사용하기때문에 백슬래쉬 대신 슬래쉬를 사용해야 한다. 모든 절대경로에 볼륨명을 포함하길 바란다. 볼륨명을 생략하면 아파치는 SYS:
볼륨이라고 잘못 가정할 수 있다.
NetWare용 아파치는 서버를 다시 컴파일하지 않고 실행할때 모듈을 읽어들일 수 있다. 보통 아파치를 컴파일하면 \Apache2\modules
디렉토리에 여러 추가 모듈을 설치한다. 이들 혹은 다른 모듈을 사용하려면
지시어를 사용한다. 예를 들어 status 모듈을 사용한다면:LoadModule
- CGI 파일 확장자를 스크립트 인터프리터와 연결한다.SecureListen
- 특정 포트를 SSL 암호화한다.NWSSLTrustedCerts
- 프록시하는 서버에 보안연결할때 사용할 신뢰하는 인증서(certificate)를 추가한다.NWSSLUpgradeable
디렉토리를 작성해야 한다. 배포본의 conf
표시를 찾아서 적절한 설정으로 대체한다. conf/magic
과 conf/mime.types
파일도 복사한다. 아니면 makefile을 실행할때 install
란 이름으로 윈도우즈 경로에 두어야 한다.NOVELLLIBC
환경변수를 Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior
에 설치하였다면, 환경변수를 설정할 필요는 없다.LDAPSDK
환경변수를 Set ZLIBSDK=D:\NOVELL\zlib
디렉토리의 전체 경로로 설정한다.APR_WORK
환경변수에 포함되있는지 확인한다.\httpd-2.0\srclib\apr-util\uri
디렉토리에서 "gmake -f nwgnumakefile
"을 실행하여 GENURI.nlm
볼륨으로 복사하고 SYS:\genuri > sys:\uri_delims.h
파일을 컴파일하는 컴퓨터의 \httpd-2.0\srclib\apr-util\uri
"을 실행하여 APR을 컴파일한다.\httpd-2.0\srclib\pcre
볼륨으로 복사하고 다음과 같이 실행한다: SYS:\genchars > sys:\test_char.h
SYS:\dftables > sys:\chartables.c
일반 실행파일을 컴파일하여 \release
디버그용 실행파일을 컴파일하여 \debug
디렉토리에 실행파일, 문서, 추가 지원파일을 포함한 완전한 아파치 배포본을 만든다.
디렉토리를 만들고 헤더파일과 import 파일을 복사한다.
정의 유무에 따라 \release
에 있는 오브젝트파일과 실행파일을 모두 지운다.
clean과 비슷하지만 디렉토리도 지운다.
Apache HTTP Server Version 2.4
Novell NetWare에서 아파치 사용하기
이 문서는 Novell NetWare 6.0 이상에서 아파치 2.0을 설치, 설정, 실행하는 방법을 설명한다. 버그를 찾았거나 다른 방법으로 돕고싶다면, 버그 보고 페이지를 이용하길 바란다.
요구조건
아파치 2.0은 NetWare 6.0 service pack 3 이상에서 동작하도록 설계되었다. SP3보다 낮은 service pack을 사용한다면 최신 NetWare Libraries for C (LibC)를 설치해야 한다.
NetWare용 아파치 다운받기
아파치 최신 버전에 대한 정보는 http://www.apache.org/에서 (아파치 웹서버) 찾을 수 있다. 여기에는 현재 버전과 최근 알파/베타테스트 버전, 미러 웹사이트와 ftp 사이트 정보가 있다. NetWare용 아파치 2.0의 최신 바이너리 배포본은 여기에서 다운받을 수 있다.
NetWare용 아파치 설치하기
현재 NetWare용 아파치 설치프로그램은 없다. NetWare용 아파치 2.0 소스를 직접 컴파일한다면 파일을 서버로 직접 복사해줘야 한다.
NetWare용 아파치 실행하기
아파치를 시작하려면 콘솔에서 apache를 입력하면 된다. 그러면 운영체제 주소영역에 아파치를 읽어들인다. 보호주소영역에 아파치를 읽어들이려면 다음과 같이 load 명령어로 주소영역을 지정한다:
NetWare용 아파치 설정하기
아파치는 보통 conf 디렉토리에 있는 설정파일로 설정한다. 이 파일은 유닉스용과 같지만, NetWare용 아파치에는 조금 다른 지시어들이 있다. 사용가능한 모든 지시어에 대해서는 아파치 문서를 참고하라.
Netware용 아파치 컴파일하기
아파치를 컴파일하려면 MetroWerks CodeWarrior 6.x 이상이 필요하다. 아파치를 컴파일하면 어떤 Netware 볼륨에라도 설치할 수 있다. 기본값은 sys:/Apache2 디렉토리다.