Apache HTTP Server Version 2.0
아파치 시작
보통 아파치는 Windows NT, 2000, XP에서는 서비스로, Windows 95과 ME에서는 콘솔 프로그램으로 실행된다. 자세한 내용은 서비스로 아파치를 실행하기와 콘솔 프로그램으로 아파치를 실행하기.
유닉스에서 httpd
프로그램은 백그라운드에서 계속 요청을 처리하는 데몬으로
실행된다. 이 문서는 httpd
를 시작하는 방법을
설명한다.
어떻게 아파치가 시작하나
설정파일에서 Listen
이 기본값인 80(혹은
1024이하의 다른 포트)이라면 이 특권 포트에 연결하기위해
root 권한이 필요하다. 서버는 시작하여 로그파일을 여는 등의
몇몇 기초적인 작업을 마친후, 클라이언트의 요청을 기다리고
응답하는 자식(child) 프로세스를 여러개 띄운다.
주 httpd
프로세스는 계속 root 사용자로 실행되지만,
자식 프로세스들은 더 권한이 작은 사용자로 실행된다. 이는
선택한 다중처리 모듈로 조정한다.
apachectl
스크립트를 사용하여 httpd
실행파일을 시작하길
권장한다. 이 스크립트는 httpd
가 몇몇
운영체제에서 정상적으로 동작하기위해 필요한 환경변수들을
설정하고 httpd
실행파일을 시작한다.
apachectl
은 명령행 아규먼트를 그대로 넘기기때문에,
httpd
의 어떤 옵션이라도 apachectl
에
사용가능하다. 또, apachectl
스크립트의 앞부분에
나오는 HTTPD
변수를 httpd
실행파일이
있는 위치와 항상 사용할 명령행 아규먼트로 직접
수정할 수 있다.
httpd
를 실행하면 먼저 설정파일 httpd.conf
를
찾아서 읽는다. 이 파일의 위치는 컴파일 중에 지정하나, 실행시
다음과 같이 -f
명령행 옵션으로 지정할 수도 있다.
/usr/local/apache2/bin/apachectl -f
/usr/local/apache2/conf/httpd.conf
시작하는 과정에서 문제가 없다면, 서버는 터미널에서
떨어지고 명령 프롬프트가 거의 즉시 나오게된다. 이는 서버가
실행됨을 의미한다. 브라우저로 서버에 연결하여 DocumentRoot
디렉토리에 있는
테스트 페이지와 그 페이지에 링크된 (로컬카피) 설명서를 볼
수 있다.
시작중 오류
아파치가 시작하는 과정중에 심각한 문제가 발생하면,
종료하기 전에 문제를 알리는 문구를 콘솔이나 ErrorLog
에 쓴다. 가장 흔한 오류문 중
하나는 "Unable to bind to Port ...
"이다.
이 메세지는 보통 다음 두 경우에 발생한다:
- root 사용자로 로그인하지 않고 특권 포트에 서버를 시작하려 한 경우. 혹은
- 이미 아파치나 다른 웹서버가 사용중인 포트에 서버를 시작하려 한 경우.
기타 문제해결 방법은 아파치 FAQ를 참고하라.
부팅할때 시작하기
시스템이 재시작한 후에도 서버가 계속 실행되길 바란다면,
시스템 시작파일(보통 rc.local
이나 rc.N
디렉토리에 있는 파일)에 apachectl
을 추가해야
한다. 이 경우 아파치는 root로 시작된다. 이전에 서버의 보안이나
접근 제한(파일권한)이 올바로 설정되었는지 확인하라.
apachectl
은 표준 SysV init 스크립트와 비슷하게
동작하도록 만들어졌다. 스크립트는 아규먼트로 start
,
restart
, stop
을 받으면 각각 적절한
시그널을 httpd
에 보낸다. 그래서 보통은
apachectl
을 적절한 init 디렉토리로 링크를 걸면된다.
그러나 사용하는 시스템의 정확한 요구사항을 확인하라.