다음 이전 차례

4. LDAP 서버 구동하기

slapd는 스탠드 얼론 서버로서 작동되도록 설계되어 있어 서버가 캐싱 이용, 기본 데이터베이스와의 동시 작용 문제 처리 및 시스템 자원 보호를 할 수 있다. inetd(8)로부터의 작동은 옵션이 아니다.

4.1 Command Line Options

slapd는 메뉴얼 페이지에 상세히 설명된 바와 같이 많은 command-line 옵션을 지원한다. 이 절은 일반적으로 자주 사용되는 약간의 옵션을 상세히 설명한다:

-f <filename>


이 옵션은 slapd에 대한 대체 구성 파일을 지원한다. 디폴트는 보통 /usr/local/etc/openldap/slapd.conf 파일이다.
-h <URLs>

이 옵션은 대체 listener 구성을 지정한다. 디폴트는 ldap:/// 로 디폴트 LDAP포트 389의 TCP 인터페이스를 갖는
LDAP를 의미한다. 호스트-포트 쌍 및 ldaps:// 또는 ldapi:// 와 같은 다른 프로토콜 계획을 지정할 수 있다.
예를들어, -h "ldaps:// ldap:/127.0.0.1:667"은 두 개의 listener를 생성할 것이다: 하나는 디폴트 LDAP/SSL 포트
636의 모든 인터페이스에서 SSL을 이용하는 LDAP이고 다른 하나는 포트 667의 로컬 호스트(루프백,loopback)에서
TCP를 이용한 LDAP. 호스트는 IPv4 dotted-decimal 형태 또는 호스트 네임을 사용하여 지정될 수 있다.
포트값은 수치여야 한다.
-n <service-name>

이 옵션은 로깅과 다른 목적을 위해 사용되는 서비스 이름을 지정한다. 디폴트 서비스 이름은 slapd이다.
-l <syslog-local-user>

이 옵션은 syslog(8) 에 대한 로컬 사용자를 지정한다. LOCAL0, LOCAL1, LOCAL2,..., 와 LOCAL7이 값이 있다.
디폴트는 LOCAL4이다. 이 옵션은 모든 시스템에서 지원되지 않을 수 있다.
-u user -g group

이 옵션들은 각각 서버를 작동하는 사용자와 그룹을 지정한다. 사용자와 그룹은 각각 사용자 및 그룹 이름과
uid 및 gid 일 수 있다.
-r directory

이 옵션은 런타임 디렉토리를 지정한다. slapd는 listener을 오픈한 후 그렇지만 어떤 구성파일을 읽기 전 또는
어떤 백엔드를 초기화하기 전에 이 디렉토리로 chroot(2) 할 것이다.
-d <level> | ?

이 옵션은 slapd 디버그 레벨을 <level>로 설정한다. 레벨이 `?' 문자일 때는 선택한 옵션에 상관없이 다양한
디버깅 레벨이 출력되며 slapd 는 종료된다. 현재 디버깅 레빌은 다음과 같다:

-1  enable all debugging
0  no debugging
1  trace function calls
2  debug packet handling
4  heavy trace debugging
8  connection management
16  print out packets sent and received
32  search filter processing
64  configuration file processing
128  access control list processing
256  stats log connections/operations/results
512  stats log entries sent
1024  print communication with shell 백엔s
2048  print entry parsing debugging 

각각의 원하는 레벨에 대해 디버그 옵션을 지정함으로써 다중 레벨을 작동시킬 수 있다. 또한  디버깅 레벨은
부가적이기 때문에 스스로 레벨을 계산할 수 있다. 즉, function call을 tracing 해서 config 파일이 
프로세싱되는 것을 보려고 한다면 이러한 두 레벨의 합(이 경우 -d 65)으로 레벨을 설정할 수 있을 것이다.
또는 slapd 가 계산을 하도록 할 수 있다(예, -d 1 -d 64). 더 많은 세부사항을 알기 위해서는 <ldap.h> 파일을
참고하길 바란다.

Note: slapd가  두 stats 레벨 이상의 임의의 디버깅 정보를 이용할 수 있도록 정의된 -DLDAP_DEBUG 옵션을
갖고 컴파일되어있어야 한다.

4.2 LDAP 서버 시작하기

일반적으로 slapd 는 다음과 같이 구동시킨다:

/usr/local/etc/libexec/slapd [<option>]*

/usr/local/etc/libexec는 configure에 의해 결정되며 <option>은 위에서 설명한 옵션(또는 slapd(8)) 중의 하나이다. 레벨 0를 포함하여 디버깅 레벨을 지정하지 않는다면 slapd는 자동적으로 분기(fork)하여 그 자신의 제어 터미널로부터 분리해서 백그라운드에서 실행된다.

4.3 LDAP 서버 중지하기

slapd를 안전하게 종료시키기 위해 다음의 명령을 실행시켜야 한다:

kill -TERM `cat $(ETCDIR)/slapd.pid`

더욱 과감한 방법으로 slapd를 종료하는 것은 그것이 종료전에 다양한 버퍼를 flush 할 필요가 있을 수 있기 때문에 LDBM 데이터베이스를 손상시킬 수 있다. slapd는 자신의 pid를 slapd.conf 파일에 설정했던 디렉토리(예를들어 /usr/local/var/slapd.pid)내의 slapd.pid 파일에 쓴다는 것을 주목해라.

include/ldapconfig.h.edit 파일의 SLAD_PIDFILE 변수를 변경함으로써 이 pid 파일의 위치를 변경할 수 있다.

Slapd 는 slapd.conf 파일에 설정했던 디렉토리(예를들어 /usr/local/var/slapd.args)내의 slapd.args 파일에 또한 인수들을 쓸 것이다.

include/ldapconfig.h.edit. 파일의 SLAPD_ARGSFILE 변수를 변경함으로써 args 파일의 위치를 변경할 수 있다.


다음 이전 차례