캠핑과 개발

아파치가 서버가 시작될때 자동으로 httpd 서비스가 실행되게 하기 위해서 사용한다.


먼저 아파치가 설치 되어 있어야 한다.

예제를 위해서 설치된 아피치 경로는 다음과 같다


설치경로

/app/web/apache24



1. 심볼릭 링크 설정

먼저 아파치 설치 경로 /app/web/apache24/bin/ 폴더에는 httpd 서버를 실행시키기 위한 apachectl 명령어가 존재한다.

이 명령어를 /etc/rc.d/init.d/ 폴더로 링크를 걸어준다.

이렇게 하는 이유는 서비스를 등록하기 위해서는 해당 폴더에 쉘 정보가 존재해야지 서비스 등록이 가능하기 때문이다.


ln -s /app/web/apache24/bin/apachectl /etc/rc.d/init.d/httpd




2. apachectl 명령어 편집

vi 편집기를 이용하여 apachectl 명령어에 다음 강조된 문구를 추가해준다.

해당 문구 추가해주는 이유는 해당 부분이 존재하지 않을 경우 service 등록이 되지 않기 때문이다.



#!/bin/sh

#

# chkconfig: 345 85 15

# description: init file for Apache2 server daemon

#

# Licensed to the Apache Software Foundation (ASF) under one or more



chkconfig: 345 85 15에 대한 내용은 다음과 같다.

345 : 부팅시 런레벨 3, 4, 5에서 구동됨을 의미

85   : 데몬 실행 우선 순위

15   : 데몬 종료 우선 순위

 


만약 해당 문구가 존재하지 않을 경우 다음과 같은 메세지기 표출된다.

httpd 서비스는 chkconfig 를 지원하지 않습니다




3. 서비스 등록

기본적으로 apache는 root 권한으로 실행되어야 한다. 만약 1~1024 범위 안에 포트가 아닐 경우는 root 권한이 아니여도 된다. 

실행 권한이 없는 경우 다음 명령으로 실행 권한을 먼저 부여한다.

http는 /etc/rc.d/init.d/httpd를 가르킨다.


실행 권한 부여

chmod +x httpd



서비스를 등록하기 위해서는 chkconfig --add 명령으로 서비스를 등록하고, 서비스를 삭제하기 위해서는 chkconfig --del 명령을 삭제를 하면 된다.


서비스 등록

chkconfig --add httpd




서비스 목록 확인

chkconfig --list | grep httpd


httpd           0:해제  1:해제  2:해제  3:해제  4:해제  5:해제  6:해제



서비스 목록에는 등록되어 있지만 해당 서비스는 모두 해제로 되어 있어서 동작되지 않는다.

서버가 시작하거나 재부팅시 동작되도록 런레벨을 설정해준다.


렌레벨 설정

chkconfig --level 35 httpd on


서비스 목록 확인

chkconfig --list | grep httpd


httpd           0:해제  1:해제  2:해제  3:활성  4:해제  5:활성  6:해제



4. 참고


리눅스 런레벨 정보

# 0 - halt (DO NOT set initdefault to this)

시스템 종료 


# 1 - Single user mode

관리자 작업을 위한 유저 모드


# 2 - Multiuser mode, without NFS (The same as 3, if you do ot have networking)

네트워크 인터페이스를 사용하지 않는 텍스트 유저 모드


# 3 - Full muliuser mode

텍스트 유저 모드


# 4 - unused

사용되지 않음, 특별한 목적을 위해 존재


# 5 - X11

그래픽 유저 모드


# 6 - reboot (DO NOT set initdefault to this)

시스템 재부팅