아파치를 콘솔 프로그램으로 실행하기 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

아파치를 콘솔 프로그램으로 실행하기 정보

JavaScript 아파치를 콘솔 프로그램으로 실행하기

본문

일반적으로 아파치를 service로 실행하길 권합니다.
그러나 명령행에서 실행하는게 편한 경우가 있습니다.
(Windows 9x에서는 service를 안정적으로 지원하지 않기때문에 명령행에서 아파치를 실행하는 방법을 권합니다).

아파치를 콘솔 프로그램으로 실행하려면, 명령행에서 다음 명령어를 사용합니다

[apache]

아파치는 Control-C를 눌러서 정지할때까지 실행됩니다.

또, 시작 메뉴 -> 프로그램 -> Apache HTTP Server 2.0.xx -> Control Apache Server에 설치된 Start Apache in Console 바로가기로 아파치를 실행할 수 있습니다.
바로가기를 실행하면 콘솔창을 열고 그 안에서 아파치를 실행합니다.
아파치를 service로 설치하지 않았다면, 아파치를 실행하는 콘솔창에서 Control-C를 눌러 아파치를 중단할때까지 창이 떠 있습니다.
이 경우 서버는 몇초안에 종료합니다.
그러나, 아파치를 service로 설치하였다면 바로가기는 service를 시작합니다.
아파치 service가 이미 실행중이라면 바로가기는 아무일도 하지 않습니다.

다른 콘솔창을 열고 다음과 같이 입력하여 실행중인 아파치를 종료할 수 있습니다

apache -k shutdown

이 방법은 아파치가 현재 작업을 마치고 점잖게 종료할 수 있기때문에 Control-C 보다 좋습니다.

또, 아파치를 재시작할 수 있습니다.
이 경우 설정파일을 다시 읽어옵니다. 진행중인 작업을 중간에 끊지않고 완료합니다.
아파치를 재시작하려면:

apache -k restart

유닉스용 아파치에 익숙한 사람을 위해: 이 명령어는 kill -TERM pid나 kill -USR1 pid의 Windows판입니다.
명령행 옵션 -k는 유닉스 kill 명령어 이름을 본따 지었습니다.
아파치 콘솔창이 즉시 혹은 시작후 갑자기 닫치면 시작 메뉴 -> 프로그램의 명령 프롬프트를 실행합니다.
아파치를 설치한 폴더로 가서 apache 명령어를 실행해보고 발생한 오류문을 살펴봅니다.
그리고 logs 폴더로 가서, 설정파일이 잘못되었는지 error.log 파일을 살펴봅니다.
아파치를 설치할때 기본값을 사용했다면 다음과 같습니다:

c:
cd "\Program Files\Apache Group\Apache2\bin"
apache

아파치가 정지할 때까지 기다리거나 Control-C를 누릅니다. 그리고 다음과 같이 입력합니다:

cd ..\logs
more < error.log

아파치를 다룰때 아파치가 어떻게 설정파일을 찾는지 아는 것이 중요합니다.
두가지 방법으로 명령행에서 설정파일을 지정할 수 있습니다:

-f는 설정파일의 절대경로 혹은 상대경로를 지정합니다:

apache -f "c:\my server files\anotherconfig.conf"

혹은

apache -f files\anotherconfig.conf

-n은 아파치 service를 선택하고, 해당 service의 설정파일을 사용합니다:

apache -n "MyServiceName"

두 경우 모두 설정파일이 적절한 ServerRoot를 지정해야 합니다.

-f나 -n으로 설정파일을 지정하지 않으면, 아파치는 conf\httpd.conf와 같이 서버에 컴파일된 파일명을 사용합니다.
이 기본 경로는 설치 디렉토리에 상대적이다. 다음과 같이 -V 옵션으로 아파치를 실행하면 SERVER_CONFIG_FILE이란 항목에서 서버가 사용할 설정파일을 알 수 있습니다:

apache -V

아파치는 다음 순서대로 ServerRoot를 찾습니다:

-C 명령행 옵션에 사용한 ServerRoot 지시어.
-d 명령행 옵션.
현재 작업 디렉토리.
바이너리 설치를 했다면 설치할때 만든 registry 항목.
서버에 컴파일된 server root. 기본값은 /apache이고, apache -V를 실행하면 HTTPD_ROOT라는 항목에서 확인할 수 있습니다.
설치할때 윈도우즈 레지스트리에 버전 특유의 레지스트리 키를 만듭니다.
키의 위치는 설치 종류에 따라 다릅니다.
install Apache for all users를 선택하였다면 HKEY_LOCAL_MACHINE 아래에 다음과 같은 키를 만듭니다 (물론 버전번호는 아파치 버전마다 다르다):

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43

"모든 사용자"를 대상으로 아파치를 설치하였다면 HKEY_CURRENT_USER 아래 키가 생깁니다.
내용은 현재 로그온한 사용자에 따라 다릅니다:

HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43

키 이름이 서버에 컴파일되기때문에 현재 버전을 건드리지않고 새로운 버전을 설치하여 테스트해볼 수 있습니다.
물론 새 버전을 다른 버전과 같은 디렉토리에 설치하지않도록 주의해야 합니다.

바이너리 설치를 하지 않은 경우 아파치는 레지스트리 키가 없다고 불평할 수 있습니다.
서버가 다른 방법으로 설정파일을 찾을 수 있다면 이 경고를 무시해도 됩니다.

키의 값은 ServerRoot 디렉토리이며, 이 디렉토리에 conf라는 하위디렉토리가 있습니다.
아파치를 시작하면 이 하위디렉토리에서 httpd.conf 파일을 읽어 옵니다.
이 파일에 나오는 ServerRoot 지시어가 레지스트리 키에 나온 디렉토리와 다르다면, 아파치는 레지스트리에서 얻은 값을 무시하고 앞으로 설정파일에 나온 디렉토리를 사용합니다.
아파치 디렉토리나 설정파일을 다른 장소로 복사하면 반드시 httpd.conf 파일에 있는 ServerRoot 지시어를 그 위치로 수정해야 합니다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:30:25 Apache에서 이동 됨]</div>
추천
0
  • 복사

댓글 0개

© SIRSOFT
현재 페이지 제일 처음으로