· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Qmail_MySQL_IMAP-KLDP

큐메일 + MySQL + IMAP 설치 따라하기

큐메일 + MySQL + IMAP 설치 따라하기

김 세호 redbaron@kr.psi.net

2000년4월7일 방 창현 winchild@kldp.org 2000년4월19일
본 문서는 리눅스를 포함한 일반적인 유닉스 시스템에서 사용할 수 있는 메일전송에이전트 인 큐메일과 메일유저에이전트와 인터페이스를 하는 IMAP을 어떻게 설치하였는지에 대한 설치기 입니다. 개념적인 설명은 포함하고 있지 않습니다. 무조건 따라만 하시면 설치를 하실 수 있을 것 입니다. 문서의 초안작성는 포포리님이 하셨지만 저(방창현)이 임의대로 마구 첨삭을 하였습니다. 어투가 다르더라도 이해하시기 바랍니다.

1. 개 요

안녕하세여    지난 1주일동안 나름대로 고생하며 설치를 한 qmail에서 imap를 사용하는 방법을 이렇게 정리해서 올리게 됐습니다. ^^; 많은 분들이 닭질하는 것을 방지하기 위하야 이렇게 제가 닦질한 결과를 적네여. 부디 많은 도움이 되기를 바랍니다.

혹.. 내용중에 이상한 부분이 있다면... 저에게 알려주심 수정을 하도록 하겠습니다. 쩝.. qmail대한 국내에서 만든 패치가 하나도 없음에... 안타깝더군여 -.-;

문서는 마음대로 배포를 해 주셔도 됩니다. 수정하셔서 할때는 꼭 저에게도 알려주시구여...

쿡쿡.. 굳이 안알려주신다면.. 할수없져 뭐... ^^;

이제 시작을 해보지여...

2. 설치준비

먼저 설치한 환경부터 말씀을 드리지여. Alzza Linux 6.0을 설치했구.. 배포되는 CD에서만 설치를 했고 다른 특별한 것은 없었습니다. 6.1이나 기타 리눅스 배포판에서도 잘 될걸로 사려됩니다만... Solaris는 자신하지 못하겠습니다.

이제 필요한 패키지를 알아보죠. 패키지는 모두 tarball형식으로 사용했습니다. RPM은 하나도 안썼지여... 그래서 설치하는데 좀 오래걸릴지도 모릅니 당. ^^;

제가 파일들의 링크를 포함시켰으니 참조하시기 바랍니다. 다른 버전을 사용할 시에는 제대로 설치가 안될수가 있습니다. 무조건 최신버전을 쫓아서 하지 마시고 규정된 배포본을 사용하시는것이 설치를 보장할 수 있습니다. 설치를 성공하신 이후에 새버전 으로 빠꾸시든지 하는것이 좋습니다.

^^ 부디 많은 분들이 성공하시기를 바랍니다. 같이 웹메일 프로젝트를 하는건 어떨까요? 메일 스튜디오를 능가하는.. 크크크...

다음은 패치를 적용한 파일들입니다.

그리고 테스트를 위해 잠깐 만든프로그램이 있는데.. 이놈을 써도 되고 yamail을 사용하셔도 절대 무방합니다. 둘다 테스트 완료했습니다.

저는 /root/work/ 및 에 아래와 같이 풀어놓고 설치를 했습니다.

    [root@totoro work]# ls 
    apache_1.3.9/                  mysql-3.22.25/  rblsmtpd-0.70/ 
    checkpassword-0.81/            patch/          ucspi-tcp-0.84/ 
    daemontools-0.53/              php-3.0.15/     yamail-1999-09-01/ 
    imap-4.5_maildirpatched-1.00/  imap-4.7b/      qmail-1.03/ 

    [root@totoro work]# ls patch 
    checkpassword-0.81-mysql-0.6.6.patch  imap-4.5-mdirlist.patch 
    imap-4.5-createproto.patch            imap-4.5-qmail.patch 
    imap-4.5-maildir980721-delete.patch   imap-mysql-0.0.2.patch 
    imap-4.5-maildir980721-rename.patch   qmail-1.03-mysql-0.6.6.patch 
    [root@totoro work]# 

3. 설 치

설치순서는 저 나름대로 전체적인 흐름을 보고 정한것입니다. 물론 이 순서를 지켜주시지 않을경우 어떤 에러가 발생할수도 있으니.. 되도록이면 지켜주세엽  모든 설치는 특별히 지정하지 않는한 "root" 권한으로 실행하십시오. 그리고 각 실행위치를 나타내는 프롬프트 를 (예를 들면 아래의 MySQL 설치의경우 "mysql-3.22.25]#" 와 같이) 눈여겨서 참조하여 주시기 바랍니다.

3.1 MYSQL

많이 설치를 해보셨을테니 간단하게 넘어가져 ^^; 먼저 환경설정을 해야겠져?

    [mysql-3.22.25]# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr 
    [mysql-3.22.25]# make 
    [mysql-3.22.25]# make install 
    [mysql-3.22.25]# /usr/local/mysql/bin/mysql_install_db 
    [mysql-3.22.25]# /usr/local/mysql/bin/safe_mysqld & 
symbolic link는 나중을 위해서도 꼭 필요합니다. 없음 에러가 콱  뜨지여 ^^ (MySQL을 적용한 큐메일이나 IMAP 등의 컴파일 시 필요합니다)
    [mysql-3.22.25]# mkdir /usr/local/include
    [mysql-3.22.25]# ln -s /usr/local/mysql/include/mysql /usr/local/include/mysql 
    [mysql-3.22.25]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 
    [mysql-3.22.25]# mkdir /usr/local/lib
    [mysql-3.22.25]# ln -s /usr/local/mysql/lib/mysql /usr/local/lib/mysql 
    [mysql-3.22.25]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 
부팅될때 뜨도록 등록도 합시당
    [mysql-3.22.25]# vi /etc/rc.d/rc.local 
    ---------------------------------------------------- 
    | if [ -f /usr/local/mysql/bin/safe_mysqld ]; then | 
    | /usr/local/mysql/bin/safe_mysqld &               | 
    | fi                                               | 
    ---------------------------------------------------- 
여기까지 했음 mysql은 설치가 끝났네엽 ^^; 간단하게 하나 끝내고 다음으로 가져

3.2 APACHE

흐흐.. 아파치도 많이 해보셨지요? 이놈은 더 간단하게 갑니다.

    [apache-1.3.9]# ./configure --prefix=/usr/local/apache --enable-shared=max 
    [apache-1.3.9]# make 
    [apache-1.3.9]# make install 
이놈도 부팅될때 뜨도록 등록을 합세당
    [apache-1.3.9]# vi /etc/rc.d/rc.local 
    ---------------------------------------------------- 
    | if [ -f /usr/local/apache/bin/httpd ]; then      | 
    | /usr/local/apache/bin/apachectl start            | 
    | fi                                               | 
    ---------------------------------------------------- 
쿠쿠 벌써 2개나 끝났네엽.... 이제부터 진짜로 들어갑니다. 음.....

3.3 QMAIL

흐흐 드뎌 qmail에 왔군엽. 카카카... 고생을 해보도록 하져... 뭐 qmail설치야 10번도 넘게 해보셨을테니... 다른 자세한 내용은 qmail HOW-TO 같은 문서를 참고해서 봐 주십시오. 제가 말주변이 없어서 헷갈릴수도 있습니다.

qmail install

먼저 qmail에다 mysql 패치를 적용하도록 하지여...

    [qmai-1.03]# patch -p1 < ../patch/qmail-1.03-mysql-0.6.6.patch 
qmail 디렉토리 만들어줘야 하는거 아시져? ^^
    [qmai-1.03]# mkdir /var/qmail 
qmail 유저를 등록해 줘야 하니 아래와 같이 복사를 하신후 user.sh파일을 edit합니다. 다른 부분은 다 지우고 LINUX부분 만 남겨두고 앞에붙은 주석 #을 제거합니다.
    [qmai-1.03]# cp INSTALL.ids user.sh 
    [qmai-1.03]# sh user.sh 
이제 qmail유저가 등록이 되고 몇몇 디렉토리도 같이 생겼습니당 ^^
    [qmai-1.03]# make 
    [qmai-1.03]# make setup check 
하할 여기까정 하면 우선 qmail은 설치가 됐겠죠? 크크크.... 만약 컴팔중 에러가 났다면... mysql과 관련된 path같은 부분이나 위의 symbolic link 일 가능성이 큽니다. 차근차근 봐 주세엽.

rblsmtpd install

이제 rblsmtpd를 설치해야져? 뭐 이놈이야 아주 간단하게 끝내지여.

    [rblsmtpd-0.70]# make 
    [rblsmtpd-0.70]# make setup check 
하할 끝났습니다.

qmail 설치 계속

이젠 다시 qmail디렉토리로 갑니다. (/var/qmail/ 이 아닙니다. 소스 디렉입니다)

    [qmai-1.03]# ./config 
만약 윗 부분이 에러가 난다면 아래 처럼 해주세여   
    [qmai-1.03]# ./config-fast totoro.kr.psi.net

(주) 원래는 config 만으로 되어야 합니다. 대부분 이것이 잘 되지 않는 이유는 DNS reverse 세팅이 되어 있지 않은 경우 인것 같습니다. reverse 세팅이란 IP 주소를 가지고 이름을 찾아내는 세팅을 이야기 합니다. 안돼도 되기는 하지만 제대로 세팅하게 하는것이 좋겠 지요? 확인은 ping -R <ip address> 로 확인할 수 있습니다. 하지만 DNS 가 같은 네트웍 에 있지 않을 경우는 대부분의 라우터들이 ping -R 서비스를 해주지 않으므로 안될 수 있습니다.

다음부터는 qmail설치를 그대로 따르고 설명은 안 붙입니다. 혹 죽어도 궁금하신게 있으시면 qmail HOW-TO 를 보세엽. 저는 qmail을 알려드리는게 아니라 qmail에서 IMAP 사용하는 것을 설명하는 중입니당.

    [qmai-1.03]# cd ~alias 
    [qmai-1.03]# touch .qmail-root .qmail-postmaster .qmail-mailer-daemon 
    [qmai-1.03]# cp /var/qmail/boot/home /var/qmail/rc 
쿠쿠 sendmail을 죽입시당. 저는 linux깔때 아예 sendmail을 안깔았져..
    [qmai-1.03]# kill -9 $(ps aux | grep sendmail | awk {'print $2'}) 
    [qmai-1.03]# mv /usr/lib/sendmail /usr/lib/sendmail.old 
    [qmai-1.03]# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
    [qmai-1.03]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail 
    [qmai-1.03]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail 

(주) kill 명령을 내릴때 "no such pid" 가 나올수가 있으나 그것은 명령을 내린 grep sendmail 을 검색한 것 이므로 상관없습니다.

qmail을 띄워봅세당 ^^ 하할   

    [qmai-1.03]# csh -cf '/var/qmail/rc &' 
이놈도 부팅될때 뜨도록 등록을 합세당
    [qmai-1.03]# vi /etc/rc.d/rc.local 
    ---------------------------------------------------- 
    | if [ -f /var/qmail/rc ]; then                    | 
    | csh -cf '/var/qmail/rc &'                        | 
    | fi                                               | 
    ---------------------------------------------------- 

ucspi-tcp

이제부텀은 qmail과 같이 깔아야 하는 넘들입니다. 쿠쿠... 역시 뭐하는 놈인지는 ^^ HOW-TO 를 보세엽    전 깔수있도록만 알려드립니다.

    [ucspi-tcp-0.84]# make 
    [ucspi-tcp-0.84]# make setup check 

daemontools

제일 끝에 setuser명령이 안먹는 경우가 있는데 이경우 0.53버전을 설치하시면 문제 없습니다. 0.53을 이용해 주세엽.. 물론 setuidgid도 상관없지만여 ^^

    [daemontools-0.53] make 
    [daemontools-0.53] make man 
    [daemontools-0.53] make setup 
    [daemontools-0.53] make check 

qmail 설치 계속

흠흠... 이제 대강 qmail은 정리가 되어갑니다. ^^ 이제 로그에 관한 설정을 하지여

    [qmai-1.03]# mkdir /var/log/qmail 
    [qmai-1.03]# chown qmaill /var/log/qmail 
    [qmai-1.03]# mkdir /var/log/qmail/qmail-smtpd 
    [qmai-1.03]# mkdir /var/log/qmail/qmail-pop3d 
    [qmai-1.03]# chown qmaill /var/log/qmail/* 
이제 tcprules을 설정합니다. ^^뭐하는 놈인지는 다 아시죠? 뭐 외부에서 SMTP로 쓰고 못쓰고.. 뭐 어쩌구 저쩌구 하더군여....
    [qmai-1.03]# vi /etc/tcp.smtp 
:allow 또는 203.255.115.:allow,RELAYCLIENT="" 뭐 이런식으로 설정합니다.
    [qmai-1.03]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 
    [qmai-1.03]# PATH=/var/qmail/bin:/usr/local/bin:$PATH 
    [qmai-1.03]# export PATH
    [qmai-1.03]# mkdir /var/lock/qmail-smtpd 
    [qmai-1.03]# supervise /var/lock/qmail-smtpd \ 
    tcpserver -v -x/etc/tcp.smtp.cdb -u71 -g1001 0 25 \ 
    rblsmtpd qmail-smtpd 2>&1 | \ 
    setuser qmaill accustamp | \ 
    setuser qmaill cyclog -s5000000 -n5 /var/log/qmail/qmail-smtpd & 
    [qmai-1.03]# vi /etc/inetd.conf 

checkpassword

    [checkpassword-0.81]# patch -p1 < ../patch/checkpassword-0.81-mysql-0.6.6.patch 
    [checkpassword-0.81]# make 
    [checkpassword-0.81]# make setup check 
    [checkpassword-0.81]# vi /etc/inetd.conf 
아래와 같이 /etc/inetd.conf 파일에 pop-3를 수정합니다. 쭈욱 한줄로 쓰세요. 절대 두줄이 아닙니다.
    pop-3 stream tcp nowait root /usr/sbin/tcpd /var/qmail/bin/qmail-popup totoro.kr.psi.net
       /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 
잘되나 테스트를 해봅세당.. ^^; 하하 잘되야 할텐데....
    [checkpassword-0.81]# printf "popori\01111\0Y123456\0" | /bin/checkpassword `which id` 3<&0 
아시져? "계정\0패스워드\0암거나\0" 이놈이 안되면 다시해야됩니당... 부디 잘하세엽...

(주)혹 libmyysqlclient.so.6 가 없다고 에러가 날수 있습니다. 이경우는 새로 설치된 MySQL 의 shared 라이브러리가 /usr/lib 디렉토리에 존재하지 않기 때문에 나는 에러 입니다. 아래를 실행하고 다시 실행하십시오.

    [checkpassword-0.81]# ln -s /usr/lib/mysql/libmysqlclient.so.6.0 /usr/lib/libmysqlclient.so.6

qmail에 sqlserver를 설정합니다

    [qmai-1.03] vi /var/qmail/control/sqlserver 
    ---------------------------------------
    | mysql_use yes                       | 
    | server localhost                    | 
    | login qm_user                       | 
    | password                            | 
    | db qmail                            | 
    | table users                         | 
    | check_host no                       | 
    ---------------------------------------
(주) MySQL 에 접속하는 유저로서 qm_user 를 사용하고 있습니다. 이미 MySQL 을 사용하기 위한 authority 설정이 되어 있어야 합니다. 자세한것은 MySQL 매뉴얼을 참조하십시오.

MySQL DB설정

후후 이렇게 적었으면 맞게 DB도 설정을 해줘야겠죠?

    [mysql-3.22.25]# mysqladmin create qmail 
    [mysql-3.22.25]# mysql mysql 

들어가서 위에 적은 popori 계정과 qmail DB를 mysql database에 적용합니다. 유저등록하고(user table) DB사용가능하게 적어줍니다 (db table) 하하 이놈은 mysql manual을 보시던가 아님 저에게 살짝 메일주심 제가 쿼리 적어드리지엽. ^^

    [mysql-3.22.25]# mysql -u popori qmail 
    ----------------------------------------------------
    | create table users (                             | 
    | id char(32) default '' not null,                 | 
    | crypt char(32) binary default '' not null,       | 
    | passwd char(32) binary default '' not null,      | 
    | uid int(10) unsigned default '65534' not null,   | 
    | gid int(10) unsigned default '65534' not null,   | 
    | shell char(100) binary default '' not null,      | 
    | home char(100) binary default '' not null,       | 
    | start_date date default '0000-00-00' not null,   | 
    | expire_date date default '3000-12-31' not null,  | 
    | active enum('Y', 'N') default 'Y' not null,      | 
    | key id(id(10)),                                  | 
    | key start_date(start_date),                      | 
    | key expire_date(expire_date),                    | 
    | key active(active)                               | 
    | );                                               | 
    ----------------------------------------------------

    insert into users(id, uid, gid, crypt, shell, home) 
    values ('test', 1000, 1000, encrypt('test'), '/bin/false', '/home/muser/test'); 

테스트

이제 테스트를 해봐야겠지여? 쿠쿠.. 여기서 못지나감 안됩니당... 꼭 패스하세엽. insert문장을 잘 보세엽.

    [mysql-3.22.25]# mkdir /home/muser/test 
    [mysql-3.22.25]# /var/qmail/bin/maildirmakr /home/muser/test/Maildir 
    [mysql-3.22.25]# echo "./Maildir/" > /home/muser/test/.qmail 
    [mysql-3.22.25]# chown -R 1000.1000 /home/muser/test

아래와 같은 명령을 줬을때... alias등으로 나오면 실패한겁니다. 반드시 uid(1000), gid(1000)/home/muser/test 와 같이 나와야 합니다 ^^

    [mysql-3.22.25]# /var/qmail/bin/qmail-getpw test localhost 

제대로 테스트가 됐다면 메일을 보내보죠

    [mysql-3.22.25]# echo to:test | /var/qmail/bin/qmail-inject 

보낸 메일을 받았는지는 /home/muser/test/Maildir/new 밑에 뭔가 파일이 생기면 잘 되는겁니다. 이제는 로그인을 해보지엽.

    [mysql-3.22.25]# telnet localhost pop-3 
    +OK <15378.956132287@<domain_name>
    user test 
    +OK
    pass test 
    +OK
    ...
    quit
    [mysql-3.22.25]# _
위와 같이해서 ok가 나오나여? 물론 ok가 아니라면 나올때 까정 설정을 하세엽. 뭔가 빠진겁니다.

학학... 이제 qmail까정 세팅이 끝났고... 이제는 IMAP 랑 PHP 등이 남았네여. IMAP 는 조금 복잡하니 잘 봐주세요.. 계속가죠......

3.4 IMAP

하하 드뎌 IMAP까정 왔습니다. 얼렁 얼렁 가져.. 갈길이 머네엽. 로그인을 MYSQL에서 할수 있도록 패치를 해줍니다.

    [imap-4.7b] patch -p1 < ../patch/imap-mysql-0.0.2.patch 
이제 컴파일을 하기전에 다른일을 해야합니다. 오늘 이글을 왜 쓰는지 까먹으시면 안되죠. ^^; qmail에서 IMAP를 사용하기 위함이니.. 당근 Maildir 패치를 적용해 줘야합니다. 그런데 나와있는 Maildir패치가 4.5버전용이구 이미 mysql패치를 적용해 버려서 그냥 patch명령으로 수정이 안됩니다. -_-; 이놈들은 일일이 손으로 패치를 해줘야합니다. 뭐 그래봐야 15분 정도 더 투자됩니다. -_-; 안타까운 일이지만요...

Maildir 패치

먼저 이놈을 잘 하기위해서 imap-4.5_maildirpatched-1.00 을 받아서 풉니다. 이건 IMAP 4.5에 Maildir patch를 적용해 놓은 패키지 인데... 이놈을 보고 풀면 도움이 되지여.

자 이제 갑니다. 먼저 patch 디렉토리를 보면 IMAP에서 Maildir 패치는 총 5개의 파일이 있습니다. 이 각각의 파일을 패치를 적용해 줘야 제대로 작동합니다.

IMAP-4.5-qmail.patch

이 파일을 vi로 열어보면 src/osdep/unix/env_unix.c 를 고친다는 것을 알수 있습니다.

    [imap-4.7b] vi src/osdep/unix/env_unix.c 

[imap-4.7b] 위의 패치 파일을 보며 env_unix.c를 고칩니다. 고치는 방법을 대강 알려드리면.. 먼저 line을 봅니다. @@ -595,7 +596,7 @@ <-- 이런 부분이 있죠? 이건 595번째 라인이란 소리인데... 이미 패치가 적용돼 있기 때문에 이 근처에서 찾아보시면 됩니다.

    { 
      char tmp[MAILTMPLEN]; 
      if (!sysInbox) {             /* initialize if first time */ 
    -    sprintf (tmp,"%s/%s",MAILSPOOL,myusername ()); 
    +    sprintf (tmp,"%s/Mailbox",myhomedir ()); 
      sysInbox = cpystr (tmp);   /* system inbox is from mail spool */ 
    } 
    return sysInbox; 

다시 위와 같은 부분이 있는데 595번 line에 위와 같은 코드가 있고 앞에 -는 원래있는 부분인데 이 부분을 삭제하고 대신 +가 들어있는 부분의 코드로 대체를 하는겁니다. ^^ 간단히 1줄이죠? 앞에 #는 다 주석처리 된것이므로 수정하지 않습니다.

imap-4.5-mdirlist.patch

이놈은 src/c-client/mail.c 를 수정합니다. 방법은 위와 같지여?

imap-4.5-maildir980721-rename.patch | imap-4.5-maildir980721-delete.patch

다음은 2개 패치를 한번에 적용해 보죠. 음.. 우선 이놈은 src/osdep/unix/maildir.c 를 고칩니다. 하지만 vi로 보면 파일이 없죠? ^^; 이때 아까 풀어놓은 imap-4.5_maildirpatched-1.00/src/osdep/unix/ 에 가보면 여기에는 maildir.c maildir.h 가 있습니다 ^^ 하하 두개를 복사해 오죠. 그럼 2개의 패치는 적용이 된 상태이므로 넘어갑니다. 카카카카.

imap-4.5-createproto.patch

이놈도 src/osdep/unix/env_unix.c 를 수정합니다. 마찬가지의 방법으로 조심스럽게 합니다. 비슷한 부분이 많아 잘못 하실수도 있으니까요 -_-;

Makefile

이제 이 부분들을 다 마치셨으면 마지막으로 수정해야 될 부분이 2군데 있습니다.

하나는 maildir.c 파일이 들어갔으니 이놈을 makefile에 추가해야겠죠? 당근인 얘기입니다. src/osdep/unix/Makefile을 vi로 엽니다. 그리고 다른 터미널을 하나 더 열어서 imap-4.5_maildirpatched-1.00/src/osdep/unix/Makefile 을 엽니다. 그리고 여기서 maildir을 찾아서 어디어디 들어가는지 확인후 4.7에 있는 Makefile에도 같이 적용을 시켜줍니다. ^^ 한 4 5군데 정도입니다.

이제 마지막입니다. 저도 컴파일중간에 에러가 나서 발견한건데요... env_unix.c 에 몇가지가 추가되면서 mail.h 를 고쳐야 합니다. src/c-client/mail.h를 보시면 MESSAGECACHE라는 structure(구조체)가 있습니다.

      unsigned int spare : 1;       /* first spare bit */ 
      unsigned int spare2 : 1;      /* second spare bit */ 
      unsigned int spare3 : 1;      /* third spare bit */ 
      void *sparep;                 /* spare pointer */ 
      unsigned long user_flags;     /* user-assignable flags */ 
    } MESSAGECACHE; 

이렇게 되어있는 부분에 포인터를 하나 추가시켜줍니다.

      unsigned int spare : 1;       /* first spare bit */ 
      unsigned int spare2 : 1;      /* second spare bit */ 
      unsigned int spare3 : 1;      /* third spare bit */ 
      void *sparep;                 /* spare pointer */ 
      void *maildirp;               /* for the Maildir driver */ <-- 요놈. 
      unsigned long user_flags;     /* user-assignable flags */ 
    } MESSAGECACHE; 

하학     이제 끝났습니다 돌리지여.

    [imap-4.7b]# make slx 

를 하고서는 고쳐 주어야할 파일이 있습니다. c-client 로 디렉토리를 변경한 후에

 
    [imap-4.7b]# cd c-client

거기에서 CFLAGS 파일을 편집하세요. 한줄짜린데 끝에 보면 -DSQLSERVERFILE="/etc/imap/sqlserver" 를 -DSQLSERVERFILE="\"/var/qmail/control/sqlserver\"" 로 바꾸십시요. 혹 sqlserver를 특정한 디렉토리에 만들었다면 거기로 바꾸고요. 근데 \" 를 잊지 마십시요. 컴파일시 에러 납니다. 그리고 이 태그에 영향을 받는것은 mysql.c 이므로 touch 를 해주어야 컴파일을 합니다. (꼭!)

    [c-client]# touch mysql.c

이것은 make slx 를 하면 다시 되돌아 갑니다. 혹 재컴파일 할 있을 경우 다시 돌려주어야 합니다. 그냥 make 하면 상관없구요. 다음에는 같은 디렉토리에 linkage.c 와 linkage.h 가 있습니다. 그 파일의 꼭대기에 linkage.c 는

    mail_link (&maildirdriver);

를 삽입하고 linkage.h 에는 아래를 삽입합니다.

    extern DRIVER maildirdriver;

그리고는 상위 디렉토리로 올라가서

    [imap-4.7b] # rm imapd/imap.o popd/*.o mtest/*.o

를 실행하여 준후에 다시 make 를 하면 변경된 부분에 대한 컴파일을 다시 합니다. 이제 aeromail 을 통해서 접속하면 IMAP 과 MySQL 이 적용된 프로그램이 구동할것 입니다.

    [imap-4.7b]# make
    [imap-4.7b]# cp -r imap-4.7b /usr/local/imap 
    [imap-4.7b]# ln -s /usr/local/imap/c-client /usr/local/imap/include 
    [imap-4.7b]# ln -s /usr/local/imap/c-client /usr/local/imap/lib 
    [imap-4.7b]# cp /usr/local/imap/ipopd/ipop2d /usr/sbin 
    [imap-4.7b]# cp /usr/local/imap/ipopd/ipop3d /usr/sbin 
    [imap-4.7b]# cp /usr/local/imap/imapd/imapd /usr/sbin 

주석으로 막혀있다면 풀어줍니다.

    [imap-4.7b]# vi /etc/services pop-2 pop-3 imap 등록 

먼저 qmail설치시 수정했던 pop-3는 고치면 안됩니다. [imap-4.7b]# vi /etc/inetd.conf pop-2 pop-3 imap 등록 데몬을 다시띄우고

    [imap-4.7b]# killall -HUP inetd 
IMAP데몬이 잘 되는지 확인을 하죠..
    [imap-4.7b]# telnet localhost 143 
하하 뭔가 나오면 제대로 된겁니다. 이제는 PHP를 깔져

3.5 PHP

헉헉... 드뎌 마지막입니다. 음... 힘들군여....

    [php-3.15]# ./configure --with-apxs=/usr/local/apache/bin/apxs
    --with-mysql=/usr/local/mysql --with-imap=/usr/local/imap
    --with-config-file-path=/usr/local/lib --enable-track-vars 
    [php-3.15]# make 
    [php-3.15]# make install 

하하 간단하죠? PHP도 끝났습니다.

4. 기타설정

이제 다 됐으니 웹서버를 띄우져,,,,, 먼저 띄우기전에 /usr/local/apache/conf/httpd.conf 를 수정해야합니다. php도 지원되게 풀고 홈디렉도 정하고 기타 등등 이것저것 해줍니다. 글구 apachectl start 하고 띄우죠.

5. 테스트

앗! 이부분은 아직 정리를 못했는데... -_-; 우선 급하게 보실분은 yamail을 설치해 보세여. http://www.kr.freebsd.org/ jaejunh/ 여기서 다운 받으신후 yamail패키지만 설치하심 됩니다. 아주 간단하니깐요... 한 5분이면 될겁니다. 그리고 제가 테스트 하실수 있도록 만든 부분은 추후 다시 글을 올려드리겠습니다. 죄송함다 ^^

6. 마치며

음... 정신없이 1시간 동안 나름대로 정리를 하면서 글을 쓴다고 썼는데... 정신이 하나도 없구 많은 분들이 다시 물어오실거 같아 걱정이 앞서는 군여... 보다 잘 정리할수 있었는데... 기쁜 마음에 많은 분들께 미리 알리려다 보니... 음.....

암턴 정리되지 않은 긴 글을 읽어주셔서 감사하고... 보다 좋은 글로 다시 한번 편집을 해 보도록 하겠습니다.

많은 분들에게 도음이 되었으면 좋겠네요...

다음엔 위의 환경을 바탕으로 웹메일을 만들면서 에러나 문제점을 정리하고 어찌 만들었는지 적어볼 생각입니다. ^^ 크크.... 한 1달정도 계획을 잡고있습니다. 많이 성원해 주세여    

감사합니다.


ID
Password
Join
You plan things that you do not even attempt because of your extreme caution.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-11-05 15:25:00
Processing time 0.0025 sec