디지문닷넷 - dovecot 소스 컴파일 설치
BLOG main image
240757 Visitors up to today!
Today 134 hit, Yesterday 299 hit
전체 (281)
일상 (54)
유희 (21)
견문록 (26)
PC 탐구 (141)
축구 (28)
애니메이션 (10)

디지문 호스팅

태터툴즈

이올린

올블로그

리눅스포털

SULinux

DNS Powered by DNSEver.com

너나우리

Serverchk.com

MRTG

Superuser Server Utility

rss

[디지문, 2008/08/12 22:31, PC 탐구/리눅스]
작성자: 주인장 디지문
(http://www.digimoon.net/)



소스는 아래 사이트에서 구한다.
http://dovecot.org/
 

# wget http://dovecot.org/releases/1.1/dovecot-1.1.2.tar.gz
# tar xvfz dovecot-1.1.2.tar.gz
# cd dovecot-1.1.2
# ./configure --prefix=/usr --localstatedir=/var --with-pam --with-gssapi --with-mysql
# make
# make install
# cp /usr/etc/dovecot-example.conf /usr/etc/dovecot.conf
# groupadd -g 97 dovecot
# useradd -u 97 -g 97 -d /usr/libexec/dovecot -s /sbin/nologin dovecot



편집기로 환경설정 파일인 dovecot.conf 을 아래와 같이 내용 작성한다.
# vi /usr/etc/dovecot.conf
protocols = imap pop3
disable_plaintext_auth = no
ssl_disable = yes
protocol imap {
}
protocol pop3 {
}
auth default {
mechanisms = plain
passdb passwd {
}
passdb shadow {
}
userdb passwd {
}
user = root
}
plugin {
}
mail_privileged_group = mail




실행 커맨드는 아래와 같다.
# /usr/sbin/dovecot

아래와 같이 출력된다면 dovecot이 잘 올라온 상태이다.
[root@digimoon modules]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:50022               0.0.0.0:*                   LISTEN      18505/xinetd
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      18505/xinetd
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      18313/mysqld
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      3523/smbd
tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      21245/dovecot
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      21245/dovecot
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      18505/xinetd
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      19307/sendmail: acc
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      3523/smbd
tcp        0      0 :::80                       :::*                        LISTEN      4562/httpd
udp        0      0 192.168.0.100:137           0.0.0.0:*                               3528/nmbd
udp        0      0 0.0.0.0:137                 0.0.0.0:*                               3528/nmbd
udp        0      0 192.168.0.100:138           0.0.0.0:*                               3528/nmbd
udp        0      0 0.0.0.0:138                 0.0.0.0:*                               3528/nmbd
udp        0      0 0.0.0.0:161                 0.0.0.0:*                               2832/snmpd
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     5738801 21245/dovecot       /var/run/dovecot/dict-server
unix  2      [ ACC ]     STREAM     LISTENING     5738803 21245/dovecot       /var/run/dovecot/login/default
unix  2      [ ACC ]     STREAM     LISTENING     5738812 21245/dovecot       /var/run/dovecot/auth-worker.21246

unix  2      [ ACC ]     STREAM     LISTENING     1535445 28839/saslauthd     /var/run/saslauthd/mux
unix  2      [ ACC ]     STREAM     LISTENING     5976316 18313/mysqld        /tmp/mysql.sock
[root@digimoon modules]#


실행 스크립트는 아래와 같이 작성 (레드햇 계열)
# vi /etc/rc.d/init.d/dovecot
#!/bin/bash
#
#   /etc/rc.d/init.d/dovecot
#
# Starts the dovecot daemon
#
# chkconfig: - 65 35
# description: Dovecot Imap Server
# processname: dovecot
# Source function library.
. /etc/init.d/functions

test -x /usr/sbin/dovecot || exit 0

RETVAL=0
prog="Dovecot Imap"

start() {
        echo -n $"Starting $prog: "
    daemon /usr/sbin/dovecot
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot
    echo
}

stop() {
    echo -n $"Stopping $prog: "
    killproc /usr/sbin/dovecot
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot
    echo
}

#
#   See how we were called.
#
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    start
    RETVAL=$?
    ;;
  condrestart)
    if [ -f /var/lock/subsys/dovecot ]; then
        stop
        start
    fi
    ;;
  status)
    status /usr/sbin/dovecot
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"
    exit 1
esac

exit $RETVAL
# chmod 700 /etc/rc.d/init.d/dovecot
# chkconfig --add dovecot
# chkconfig --level 345 dovecot on
# /etc/init.d/dovecot start|stop|restart



우분투용 init 스크립트는 아래와 같다.
( http://ubuntuforums.org/showthread.php?t=282688 )

# vi /etc/init.d/dovecot

#!/bin/sh
# Dovecot IMAP server

PATH=/sbin:/bin:/usr/sbin:/usr/bin

. /lib/lsb/init-functions
DISTRO=$(lsb_release -is 2>/dev/null || echo Debian)

case "$1" in
'start')
        log_daemon_msg "Starting Dovecot IMAP server..."
        /usr/sbin/dovecot
        RETVAL=$?
        log_end_msg 0
        ;;
'stop')
        log_daemon_msg "Stopping Dovecot IMAP server..."
        kill `cat /var/run/dovecot/master.pid`
        RETVAL=$?
        log_end_msg 0
        ;;
'restart')
        log_daemon_msg "Restarting Dovecot IMAP server..."
        $0 stop && $0 start
        RETVAL=$?
        log_end_msg 0
        ;;
*)
        echo "Usage: $0 { start | stop | restart }"
        RETVAL=1
        ;;
esac
exit $RETVAL

# chmod 700 /etc/init.d/dovecot
# update-rc.d dovecot defaults
# /etc/init.d/dovecot start|stop|restart



실제 사용 시 인증 관련 에러를 비롯해서 한 번에 성공 안 되고 답답하다면 구글 검색 밖에 답 없음... ^^
하지만 위 dovecot.conf 샘플 내용을 그대로 적용한다면 분명히 성공할 겁니다. ㅎ

2008/08/12 22:31 2008/08/12 22:31
Trackback Address :: http://www.digimoon.net/blog/trackback/316
simonban | 2008/11/22 22:47 | PERMALINK | EDIT/DEL | REPLY
안녕하세요...
압축풀고... ./configure --prefix=/usr --localstatedir=/var --with-pam --with-gssapi --with-mysql
했는데...
checking for mysql_init in -lmysqlclient... no
configure: error: Can't build with MySQL support: libmysqlclient not found

애러 메시지가 나오면서 멈춥니다. mysql을 /usr/local/server/mysql에 설치했거던요.
혹시 해결방법 알려 주시면 고맙겠습니다.
email: simonbanz@gmail.com
디지문 | 2008/11/23 11:52 | PERMALINK | EDIT/DEL
dovecot이 mysql의 라이브러리와 의존성이 있습니다. 이 라이브러리가 존재하지 않아 발생하는 에러 같군요.
CentOS 리눅스 구축관리실무 책으로 공부하시는 거 같네요.
mysql을 소스로 설치하셨다면 /usr/local/server/mysql/lib/mysql/libmysqlclient.so.15 파일 또는 이와 유사한 파일이 있을 겁니다. dovecot이 설치될 때 쉘 환경변수에 등록된 경로를 뒤져서 libmysqlclient.so.15 파일을 찾는데 이걸 찾지 못해 에러가 난 겁니다.

/etc/ld.so.conf 파일에 아래 한 줄 내용 추가하고

/usr/local/server/mysql/lib/mysql

ldconfig 실행한 뒤 다시 진행해 보세요.
simonban | 2008/11/23 12:21 | PERMALINK | EDIT/DEL | REPLY
[ centos]# CPPFLAGS=-I/usr/local/include/mysql LDFLAGS=-L/usr/local/lib/mysql ./configure --prefix=/usr/local --with-pam --with-gssapi --with-mysql --sysconfdir=/etc
simonban | 2008/11/23 12:23 | PERMALINK | EDIT/DEL | REPLY
위의 디렉토리로 링크를 걸어주고 설치하니까...깜끔하게 설치가 되네요. 아뭏튼 감사합니다.
그리고 init.d script 사용하시면 스크립트좀 올려주세요. 인테넷에 떠있는것은 안되네요.
디지문 | 2009/02/14 20:53 | PERMALINK | EDIT/DEL
잘 되는 스크립트 소스 구해 이제서야 올리네요. 참고하세요.
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret