2012-09-16
qmail 설치 (text문서)
#시스템 필요사항
#Mysql이 먼저 설치되어 있어야 합니다.
#큐메일은 대부분의 유닉스와 유닉스류 시스템에 설치되고 운영됩니다만 몇가지 필요사항이 있습니다.
#
#
#컴파일동안 컴파일부분에 약 10메가바잇의 여유공간. 컴파일후 옵젝트파일을 제거하면 4메가만 남습니다.
#컴파일러, 시스템헤더파일, 그리고 라입러리 등을 포함하는 완전한 C 개발시스템. 컴파일지시사항은 필요한 부분이 있으면 알려줍니다.
#바이너리, 문서, 그리고 설정 등의 파일에 대해 2-3메가바잇.
#큐에 대한 충분한 디스크공간. 소규모 단일사용자 시스템은 2-3메가바잇만 있으면 됩니다.
대용량 서버는 2-3 기가바잇이 있어야 될지도 모릅니다.
#호환 운영 시스템. 대부분의 유닉스종은 됩니다. 소스트리의 README를 보면 호환판의 리스트가 있습니다.
#DNS로의 접근을 강력히 권장합니다. 그렇지 않으면 큐메일은 smtproutes의 config 파일에 설정된 원격시스템으로만 보냅니다.
#적절한 넷웍 연결. 큐메일은 잘 연결된 시스템에 대해 설계되어서 28.8k 다이얼업에서 멜링리스트를 사용하고 싶지 않을지도 모릅니다. 큐메일을 연결이 나쁜 시스템에서 사용할 수 있도록 하려고 serialmail 패키지가 설계되었습니다. 더 많은 정보는 관련패키지 부록의 시리얼항목을 보시면 됩니다.
#
#2.4 소스를 받으십시오.
#오우케이, 이제 큐메일을 설치할 수 있도록 필요사항에 맞는 시스템을 준비하셨군요.
첫번째 단계는 큐메일과 다른 애드온의 소스코드를 다운로드하는 것입니다.
큐메일은 당연히 필요하고요, ucspi-tcp와 daemontools도 필요할 것입니다.
#
#
#qmail, ftp://koobera.math.uic.edu/www/software/qmail-1.03.tar.gz
#ucspi-tcp, http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
#daemontools, ftp://koobera.math.uic.edu/www/daemontools/daemontools-0.61.tar.gz
#
#웹브라우저나 FTP 클라이언트를 이용해서 이 파일들을 가져오세요.
#
#
#
#2.5 소스를 컴파일하세요.
#컴파일환경을 검증하세요.
#첫번째 할일은 프로그램을 컴파일하기에 필요한 툴을 갖추었는 지의 확인입니다.
이것을 결정하는 것은 사용중인 유닉스종류에 따릅니다. 말씀드릴 수 있는 가장 쉬운 방법은, 보장되지는 않지만, 해보는 겁니다.
#
#
#-----------------------------------------------------------------------------
#유의점: 이것들중 하나라도 통과하면, 다음 항목으로 넘어가셔도 됩니다.
#-----------------------------------------------------------------------------
#
#
#명령행프롬트에서, cc라 쓰고, 엔터를 누르세요:
#$ cc cc: No input files specified $
#
#
#
#답이 비슷하게 나오면, C 컴파일러가 경로에 있는 것입니다.
그렇지 않더라도, 설치되어 있지 않다는 것은 아닙니다.
설치되어 있을 지 모르지만, 경로에 포함되어 있지 않을 수도 있습니다.
물론, 설치되어 있지 않을 수도 있습니다. 이렇게 해보세요.
#
#/usr/bin/cc
#/usr/bin/gcc
#/usr/local/bin/cc
#/usr/local/bin/gcc
#/usr/ccs/bin/cc
#
#소용이 없으면, 플랫폼 특성에 맞는 방법으로 하셔야 합니다.
프롬트에서 다음 중 하나를 하시는데, 사용중인 OS에 따르셔야 합니다.
#
#Red Hat Linux: rpm -qa | grep gcc or rpm -qa | grep egcs
#FreeBSD: GCC가 디폴트로 포함됩니다.
#이번 항목에서는 큐메일을 실제로 컴파일하는 단계를 거칩니다.
오려붙이기가 간편하지만, 그렇게 필요하지는 않습니다.
#
#
#배포판을 풉니다.
#여기까지 오셨으면, 이미 C 컴파일러와 tarball을 준비하신 겁니다.
타볼을 작업하실 디렉토리로 복사하거나 옮기세요. /usr/local/src가 좋은데,
이 경우에는 /usr/local/src/qmail를 세 패케지 모두에 사용할 수 있습니다.
#
#
mkdir -p /usr/local/src/qmail
# mv *.tar.gz /usr/local/src/qmail
#
#
#/usr/local/src/qmail에 세 패케지가 전부 있으므로, 그것들을 푸십시오.
룻이 아니라면 여기에서는 룻이 되셔야 합니다.
프롬트에서 다음과 같이 하세요:
#
#
gunzip qmail-1.03.tar.gz;
tar xvf qmail-1.03.tar;
gzip -d qmail-1.03-mysql-0.6.6.patch.gz;
gunzip checkpassword-0.81.tar.gz;
tar xvf checkpassword-0.81.tar;
gzip -d checkpassword-0.81-mysql-0.6.6.patch.gz;
gunzip ucspi-tcp-0.84.tar.gz;
tar xvf ucspi-tcp-0.84.tar;
gunzip daemontools-0.61.tar.gz;
tar xvf daemontools-0.61.tar;
gunzip rblsmtpd-0.70.tar.gz;
tar xvf rblsmtpd-0.70.tar;
rm *.tar;
cd /usr/local/src/qmail/qmail-1.03;
patch -p1 < ../qmail-1.03-mysql-0.6.6.patch;
#
#
#qmail-1.03, ucspi-tcp-0.84, daemontools-0.61 등의 섭디렉토리가 생깁니다.
qmail-1.03 디렉토리로 가시면 시작하겠습니다.
#
#
#
#디렉토리를 만듭니다.
#필요한 섭디렉토리는 큐메일 설치 프로그램이 만들므로, 큐메일 홈디렉토리만 만들어 주면 됩니다.
#
#
mkdir /var/qmail;
#
#
#그러면 다음 항목으로 갑니다.
#
#
#------------------------------------------------------------------------------
#유의점: 큐메일파일들을 /var가 아닌 다른 곳에 놓고 싶으시면, /var/qmail디렉토리에
# 그곳을 가리키는 심볼릭 링크를 만드시면 됩니다.
#
# 예를 들면, 다음과 같이 하시면 됩니다.
#
# mkdir /var/qmail
# ln -s /usr/man /var/qmail/man
# mkdir /etc/qmail
# ln -s /etc/qmail /var/qmail/control
# ln -s /usr/sbin /var/qmail/bin
#--------------------------------------------------------------------------------
#
#
#사용자와 그룹을 만듭니다.
#필요한 사용자와 그룹을 만드는 가장 쉬운 방법은 작은 스크립트를 만들어서 하는 것입니다. 소스디렉토리에 INSTALL.ids 파일이 있습니다. 거기에는 여러 프랫폼에 해당하는 명령행이 있는데, 그 파일을 다른 이름으로 복사해서 편집하면 빠르고 쉽습니다.
#
#
# cp INSTALL.ids IDS
#
#
#좋아하시는 에디터로 필요한 행을 빼고 다 지웁니다.
# 예를 들면, 편집후에 FreeBSD에 대한 IDS는 다음과 같습니다.
#
#
pw groupadd nofiles;
pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent;
pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent;
pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent;
pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent;
pw groupadd qmail;
pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent;
pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent;
pw useradd qmails -g qmail -d /var/qmail -s /nonexistent;
# pw groupadd nofiles
# pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
# pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
# pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
# pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
# pw groupadd qmail
# pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
#
#
#실행하려면, chmod를 써서 실행파일로 만드시거나 sh로 실행하십시오.
#
#
#첫번째 방법:
#
# chmod 700 IDS
# ./IDS
#
#
#두번째 방법:
#
# /bin/sh IDS
#
#
#스크립트의 실행이 완료되어 사용자와 그룹이 생기면 다음항목으로 갑니다.
#
#그러나, INSTALL.ids에 해당 시스템이 없으면 어쩝니까? 수동으로 그것들을 만들어야 합니다. 좋아하는 에디터를 사용해서 /etc/group을 편집하세요. 다음 두 줄을 그 파일끝에 첨가하십시오.
#
#
#
# qmail:*:2107:
# nofiles:*:2108:
#
#
#-------------------------------------------------------------------------
#유의점: 2107과 2108이 사용중인 것이 아님을 확인하셔야 합니다.
#-------------------------------------------------------------------------
#
#
#다음으로는, vipw를 이용해서 다음 줄들을 그 파일의 끝에 붙이십시오. (대부분의 시스템에 vipw가 있지만, 없으면 에디터로 /etc/passwd를 편집합니다.)
#
#
# alias:*:7790:2108::/var/qmail/alias:/bin/true
# qmaild:*:7791:2108::/var/qmail:/bin/true
# qmaill:*:7792:2108::/var/qmail:/bin/true
# qmailp:*:7793:2108::/var/qmail:/bin/true
# qmailq:*:7794:2107::/var/qmail:/bin/true
# qmailr:*:7795:2107::/var/qmail:/bin/true
# qmails:*:7796:2107::/var/qmail:/bin/true
#
#
#------------------------------------------------------------------------------------
#유의점: 7790-7796이 사용중이지 않는다는 것과 2107과 2108이 위에서 만든 그룹아이디와
# 같다는 것을 확인하십시오.
#------------------------------------------------------------------------------------
#
#
#이런 것들을 해당파일의 끝에만 첨가해야 하는 것은 아니지만, 그래야 설명하기가 제일 쉽습니다.
#
#
#다음 항목으로 가실 준비가 되셨군요.
#
#
#컴파일을 하세요.
#이제 큐메일을 컴파일하실 준비가 되었습니다.
#
#
#'컴파일환경을 검증한다'항목에서, C 컴파일러를 지정하셨습니다.
그것이 cc가 아니거나 디렉토리가 PATH환경변수에 있지 않으면 conf-cc와 conf-ld를 편집하십시오.
컴파일러가 gcc이고, PATH에 있다고 하면, conf-cc와 conf-ld를 가볍게 편집하고, cc를 gcc로 바꾸십시오.
#
#
#그렇게 하셨으면 명령행 프롬트에 다음과 같이 하세요.
#
# qmail 에 mysql 을 patch가 되어 있어야 합니다.
# patch를 안하셨으면 위에서 확인후 패치 하십시요.
# 참고 : 모든 patch 는 /usr/local/src/qmail/patch 에 있습니다.
# patch -p1 < ../patch/qmail-1.03-mysql-0.6.6.patch
vi Makefile
#MYSQL_LIBS=/usr/local/mysql/lib/mysql/libmysqlclient.a -lm -lz -lcrypt
==>로 고침고, 경로 확인
#MYSQL_INCLUDE=-Iusr/local/mysql/include ==> 경로 확인
make;
make setup check;
#
#큐메일이 시스템에 설치되어서 가동될 준비가 되었습니다!
다음항목은 큐메일을 가동하고 시험하는 단계를 안내합니다.
#
#
#2.6 ucspi-tcp를 설치합니다.
#먼저번에 qmail, ucpsi-tcp, daemontools 타볼을 풀었습니다.
예제에서 그것들을 /usr/local/src/qmail에 풀었습니다. 자 ucpsi-tcp디렉토리로 옮깁시다.
#
#
cd /usr/local/src/qmail/ucspi-tcp-0.84;
#
#
#'컴파일을 하세요'항목에서, conf-cc와 conf-ld를 고치셨으면, 이 디렉토리에서도 똑같이 해줍니다.
#
#
#그런뒤에 다음과 같이 하십시오.
#
#
make;
make setup check;
#
#
#2.7 daemontools를 설치합니다.
#daemontools 컴파일디렉토리로 이통합니다.
#
#
cd /usr/local/src/qmail/daemontools-0.61;
#
#
#또 한번, conf-cc와 conf-ld를 qmail과 ucspi-tcp 컴파일시 고쳤으면, 이 디렉토리에서도 똑같이 합니다.
#
#
#그리고 다음과 같이 합니다.
#
#
make;
make setup check;
#
#rblsmptd를 설치합니다.
cd /usr/local/src/qmail/rblsmtpd-0.70;
make;
make setup check;
#checkpassword를 설치합니다.
cd /usr/local/src/qmail/checkpassword-0.81;
patch -p1 < ../checkpassword-0.81-mysql-0.6.6.patch;
vi Makefile
#MYSQL_LIBS=/usr/local/mysql/lib/mysql/libmysqlclient.a -lm -lz -lcrypt ==>로 고침고, 경로 확인
#MYSQL_INCLUDE=-Iusr/local/mysql/include ==> 경로 확인
make;
make setup check;
vi /etc/inetd.conf
#아래와 같이 pop-3부분을 수정합니다.
#pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup co2.ritsworld.com /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
#pop-3 stream tcp nowait root /usr/sbin/tcpd /var/qmail/bin/qmail-popup mail.ritsworld.com /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
#(한줄에 적어줍니다)
killall -HUP inetd
#제대로 설치가 되었는지 확인을 합니다
#printf "www\0com1212\0Y123456\0" | /bin/checkpassword `which id` 3<&0
#printf "test\0test\0Y123456\0" | /bin/checkpassword 'id' 3<&0
#printf "test\0test\0Y123456\0" | /bin/checkpassword env 3<&0
#printf "test\0test1212\0Y123456\0" | /bin/checkpassword `/usr/bin/id` 3<&0
#"계정\0패스워드\0아무것이나...\0" 의 순입니다
#uid=101(popori) gid=100(users) groups=100(users)
#위와 같은 결과가 나오면 제대로 설치가 된것입니다.
#위와 같은 결과가 안나오고 밑의 결과가 나올때는
#Missing name for redirect
#
#DNS가 제대로 설정되었다면, 다음 스크립트를 실행하기만 하면 됩니다.
#
#
cd /usr/local/src/qmail/qmail-1.03;
./config;
#
#
#어떤 이유로 config가 DNS에서 hostname을 찾지 못하면, config-fast script를 실행하셔야 합니다.
#
#
# ./config-fast 호스트네임.완전.경로
#
#
#예를 들면, 도메인이 example.com이고, 당신컴퓨터의 호스트네임이 dolphin이라면, config-fast를 다음과 같이 실행합니다.
#
#
# ./config-fast dolphin.example.com
#
#
#2.8 큐메일을 가동합니다.
vi /var/qmail/rc
#/var/qmail/boot디렉토리에는 여러가지 설정에 대한 본보기 큐메일 붓 스크립트가 있습니다. /var/spool/mail 대 $HOME/Mailbox, procmail 또는 dot-forward를 이용하기, 그리고 이것들의 다양한 결합. 한번 부담없이 검토해보시기 바랍니다. 우리는 설치를 위해서 다음을 이용하겠습니다.:
#
############################################################################################
#!/bin/sh
# Using stdout for logging
# Using control/defaultdelivery from qmail-local to deliver messages by default
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"
############################################################################################
#
#에디터로 위의 내용을 /var/qmail/rc로 만드시고, 다음과 같이 명령합니다.
#
#
chmod 755 /var/qmail/rc;
mkdir /var/log/qmail;
#
#
#이쯤에서, .qmail파일이 전달하지 못하는 메세지들에 대한 기본전달모드를 결정해야 합니다.
#다음의 테이블에 몇가지 공통선택이 간략히 예시되어 있습니다.
#
#
#Mailbox
# format Name Location defaultdelivery Comments
#
#mbox Mailbox $HOME ./Mailbox most common, works
# with most MUA's
#
#maildir Maildir $HOME ./Maildir/ more reliable, less
# MUA support
#
#mbox username /var/spool/mail See INSTALL.vsm traditional UNIX
# mailbox
#
#
#정보를 더 원하시면 INSTALL.mbox, INSTALL.maildir, INSTALL.vsm 등을 보십시오.
#
#
#기본 멜복스 형태를 고르시려면, 위의 테이블의 defaultdelivery 값을
#/var/qmail/control/defaultdelivery에 적어넣으십시오.
#예) 표준 큐메일 Mailbox 전달을 선택하시려면 다음과 같이 합니다.
#
#
#echo ./Mailbox >/var/qmail/control/defaultdelivery
echo ./Maildir/ >/var/qmail/control/defaultdelivery
# /var/qmail/bin/maildirmake /usr1/mailmaster/test/Maildir;
#
#
#----------------------------------------------------------------------------------
#유의점: defaultdelivery는 표준 큐메일 통제 파일이 아닙니다. 위의 /var/qmail/rc파일의
# 특징입니다.
#----------------------------------------------------------------------------------
#
#
#시스템 기동 파일
#/var/qmail/rc 스크립트를 수동으로 실행하셔야 하면, 큐메일은 부분가동합니다. 그러나, 우리는 큐메일이 시스템이 부팅할때마다 자동으로 가동하기를 원하고, 시스템이 정지할 때는 깨끗하게 꺼지기를 원합니다.
#
#
#이것은 startup/shutdown스크립트를 다음과 같이 작성하면 됩니다.
#
vi /var/qmail/bin/qmail.sh;
###########################################################################################
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
case "$1" in
start)
echo -n "Starting qmail: svscan"
cd /var/qmail/supervise
env - PATH="$PATH" svscan &
echo $! > /var/run/svscan.pid
echo "."
;;
stop)
echo -n "Stopping qmail: svscan"
kill `cat /var/run/svscan.pid`
echo -n " qmail"
svc -dx /var/qmail/supervise/*
echo -n " logging"
svc -dx /var/qmail/supervise/*/log
echo "."
;;
stat)
cd /var/qmail/supervise
svstat * */log
;;
doqueue|alrm)
echo "Sending ALRM signal to qmail-send."
svc -a /var/qmail/supervise/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /var/qmail/supervise/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /var/qmail/supervise/qmail-send
echo "Pausing qmail-smtpd"
svc -p /var/qmail/supervise/qmail-smtpd
;;
cont)
echo "Continuing qmail-send"
svc -c /var/qmail/supervise/qmail-send
echo "Continuing qmail-smtpd"
svc -c /var/qmail/supervise/qmail-smtpd
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /var/qmail/supervise/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /var/qmail/supervise/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /var/qmail/supervise/qmail-smtpd
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp*
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat <<HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
###########################################################################################
#
chmod 755 /var/qmail/bin/qmail.sh
#이 스크립트는 http://Web.InfoAve.net/~dsill/qmail-script-dt61.txt에서도 구할 수 있습니다.
#
#
#-------------------------------------------------------------------------------------
#유의점: 시스템이 재부팅한다음에 큐메일이 곧 없어지면, 스크립트의 "start"항목에 있는
# env 명령을 nohup으로 덧붙입니다.
#
# 예)
# nohup env - PATH="$PATH" svscan &
#-------------------------------------------------------------------------------------
#
#
#에디터로 스크립트를 만들거나 웹브라우저로 다운로드해서 시스템의 init.d디렉토리에 설치하시는데,
# 다음과 같은 장소가 됩니다.
#
#
#/etc/init.d
#/sbin/init.d
#/etc/rc.d/init.d
#
#스크립트를 qmail이라고 이름붙이십시오. 스크립트를 몇개의 rc디렉토리에 링크시키셔야 합니다.
# 이 데렉토리들은 rcN.d같이 되어있는데, N은 적용 runlevel입니다.
#기동디렉토리 구조가 복잡해서 본 문서에는 다루지 않습니다.
#그러니 간단한 지시사항이 맘에 차지 않으시면 시스템문서를 참조하십시오.
#rc 디렉토리는 다음중 하나일 겁니다.
#
#
#/etc
#/sbin
#/etc/rc.d
#
#링크를 만드시는데, 다음과 같이 하십시오. RCDIR를 시스템의 rc 디렉토리의 장소로 바꾸십시오.
#
#
# ln -s ../init.d/qmail RCDIR/rc0.d/K30qmail
# ln -s ../init.d/qmail RCDIR/rc1.d/K30qmail
# ln -s ../init.d/qmail RCDIR/rc2.d/S80qmail
# ln -s ../init.d/qmail RCDIR/rc4.d/S80qmail
# ln -s ../init.d/qmail RCDIR/rc5.d/S80qmail
# ln -s ../init.d/qmail RCDIR/rc6.d/K80qmail
#
#
#--------------------------------------------------------------------------------------
#유의점: 전단계의 숫자는 매우 시스템에 의존합니다. 그렇지만 다소 유연합니다.
# Sendmail이 현재 설치되어 있으면, "find RCDIR -name "*sendmail" -print" 명령을
# 실행하면 시스템에 적용할 수 있는 숫자를 알려줍니다.
#--------------------------------------------------------------------------------------
#
#
#이제 큐메일서비스를 위해 감독디렉토리를 만드십시오.
#
#
mkdir -p /var/qmail/supervise/qmail-send/log;
mkdir -p /var/qmail/supervise/qmail-smtpd/log;
mkdir -p /var/qmail/supervise/qmail-pop3/log;
chmod +t /var/qmail/supervise/qmail-send;
chmod +t /var/qmail/supervise/qmail-smtpd;
chmod +t /var/qmail/supervise/qmail-pop3;
#
#
#/var/qmail/supervise/qmail-send/run파일을 만드십시오.
#
vi /var/qmail/supervise/qmail-send/run
############################################################################################
#!/bin/sh
exec /var/qmail/rc
############################################################################################
#
#/var/qmail/supervise/qmail-send/log/run파일을 만드십시오.
#
vi /var/qmail/supervise/qmail-send/log/run
#############################################################################################
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
#############################################################################################
#
#/var/qmail/supervise/qmail-smtpd/run파일을 만드십시오.
#
vi /var/qmail/supervise/qmail-smtpd/run
#############################################################################################
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb \
-u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
#############################################################################################
#예제
##############################################################################################
##!/bin/sh
#
#QMAILDUID=`id -u qmaild`
#NOFILESGID=`id -g qmaild`
#exec /usr/local/bin/softlimit -m 2000000 \
# /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb \
# -u $QMAILDUID -g $NOFILESGID 0 smtp /usr/local/bin/rblsmtpd /var/qmail/bin/qmail-smtpd 2>&1
#############################################################################################
#
#/var/qmail/supervise/qmail-smtpd/log/run파일을 만드십시오.
#
vi /var/qmail/supervise/qmail-smtpd/log/run
#############################################################################################
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
#############################################################################################
#
#/var/qmail/supervise/qmail-pop3/run파일을 만드십시오.
#
vi /var/qmail/supervise/qmail-pop3/run
#############################################################################################
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R 0 pop3 /var/qmail/bin/qmail-popup 211.234.7.126 \
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1
#############################################################################################
##############################################################################################
##!/bin/sh
#
#exec /usr/local/bin/tcpserver -v -R 0 pop3 /var/qmail/bin/qmail-popup 211.234.7.126 \
# /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1 | \
# /var/qmail/bin/splogger pop3d &
#
##############################################################################################
#
#/var/qmail/supervise/qmail-pop3/log/run파일을 만드십시오.
#
vi /var/qmail/supervise/qmail-pop3/log/run
#############################################################################################
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d
#############################################################################################
#
#
#run파일들에 실행가능을 부여합니다.
#
#
chmod 755 /var/qmail/supervise/qmail-send/run;
chmod 755 /var/qmail/supervise/qmail-send/log/run;
chmod 755 /var/qmail/supervise/qmail-smtpd/run;
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run;
chmod 755 /var/qmail/supervise/qmail-pop3/run
chmod 755 /var/qmail/supervise/qmail-pop3/log/run;
#
#
#그런 다음에, 로그디렉토리를 만듭니다.
#
#
mkdir -p /var/log/qmail/smtpd;
mkdir -p /var/log/qmail/pop3d;
chown qmaill /var/log/qmail /var/log/qmail/smtpd /var/log/qmail/pop3d;
#
#
#기동스크립트에 실행권한을 부여하고, 실행경로에 있는 디렉토리로 링크합니다.
#
#
# # substitute the correct location of your rc dir on the next two lines
# chmod 755 /etc/init.d/qmail
# ln -s /etc/init.d/qmail /usr/local/sbin
#
#
#로컬호스트가 SMTP를 통해서 멜을 삽입 (inject)하도록 합니다.
#
#
echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp;
echo '211.234.7.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp;
/var/qmail/bin/qmail.sh cdb;
#
#
#기존에 설치된 MTA를 멈추고 무력하게 합니다.
#큐메일과 현존하는 MTA, 대개 Sendmail, 두개를 사용할 수도 있지만, 그렇게 하지 않을 것을 강력히 권고합니다.
그리고, 솔직히 말해서, 이 글을 읽고 계신다면, 그게 무엇을 뜻하는 지 모르실 겁니다. :-)
#
#
#현존 MTA가 Sendmail이라면, init.d 스크립트를 stop인수를 주어 실행하여 멈출 수 있습니다.
예) 다음 중 하나가 유효할 겁니다.
#
#
# /etc/init.d/sendmail stop
# /sbin/init.d/sendmail stop
# /etc/rc.d/init.d/sendmail stop
#
#
#init.d/sendmail 스크립트를 찾을 수 없다면, "ps -ef|grep sendmail" 또는 "ps waux|grep sendmail"을 사용해서 sendmail의 PID를 알아낸 뒤에, 다음과 같이 해서 멈춥니다.
#
#
# kill PID-of-sendmail
#
killall sendmail
#
#MTA가 Sendmail이 아니면, 해당문서에서 바른 멈춤 절차를 참고하십시오.
#
#
#시스템에서 기존의 MTA를 완전히 제거하는 것도 고려해볼 만합니다. 적어도 init.d 스크립트를 무력하게 하면 시스템이 재부팅할 때 다시는 가동하지 않습니다.
#
#
#레드햇리눅스에서는 다음과 같이 해서 Sendmail을 제거합니다.
#
#
# rpm -e --nodeps sendmail
#
#
#끝으로, 기존의 /usr/lib/sendmail을 큐메일판으로 바꿉니다.
#
#
mv /usr/lib/sendmail /usr/lib/sendmail.old;
mv /usr/sbin/sendmail /usr/sbin/sendmail.old;
chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old;
ln -s /var/qmail/bin/sendmail /usr/lib;
ln -s /var/qmail/bin/sendmail /usr/sbin;
#
#
#이제는 큐메일가동이 가깝습니다. 끝단계는 시스템앨리어스를 두어개 만드는 것입니다.
#
#
#시스템앨리어스를 만듭니다.
#모든 큐메일설치에서는 시스템앨리어스를 세개 만들어야 합니다.
#
#
#앨리어스 목적
#postmaster RFC 821 요구사항이며, 멜애드민 (당신)을 가리킵니다.
#mailer-daemon 바운스멜에 대한 사실상의 표준수취인
#root 특권계정에서 온 멜을 시스템애드민에게 보낸다.
#
#
#이 앨리어스들을 만들려면, 그것들 하나하나가 어디에 놓여져야 하는 지 (로컬사용자, 또는 원격주소) 결정하고, .qmail파일을 만들어서 갖다놓으면 됩니다. 예를 들어, 로컬사용자 dave는 시스템과 멜의 애드민이라고 하면 다음과 같이 합니다.
#
#
adduser master
echo master > /var/qmail/alias/.qmail-root;
echo master > /var/qmail/alias/.qmail-postmaster;
ln -s /var/qmail/alias/.qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon;
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster;
#
#
#mysql 연동
#마찬가지로 README.mysql.en 파일이 생성되어 있으므로 설치에 참고하시고
#컴파일과 설치를 진행합니다. 역시 설치시에는 root 로...
#/var/qmail/control/sqlserver 파일을 다음과 같은 내용으로 생성합니다.
vi /var/qmail/control/sqlserver
#########################################################################
mysql_use yes
server localhost
login m
password su
db qmail
table users
check_host no
#########################################################################
또 다른 예
#########################################################################
#mysql_use yes
#server localhost
#login m
#password su
#db ritsworld
#table userinfo
#check_host no
#quota yes
#ignore_validity yes
#########################################################################
#간략하게 설명하면...
#
# mysql_use yes ... mysql 을 사용한다.
# server localhost ... 서버는 현재의 mysql 서버를 사용한다.
# login qmail ... mysql DB에 접근하는 사용자명
# password su ... mysql DB에 접근시에 필요한 비밀번호
# db qmail ... 사용자 계정을 가지고 있는 DB명
# table users ... 사용자 계정이 들어있는 테이블명
# check_host no ... 이것이 yes 이면 mysql DB에 있는 이용자명과
# 도메인 (호스트)로 부터만 메일을 수신한다.
# (무슨소리인지 잘 모르겠음...)
#
#로그인은 MySQL 에 접근하는것을 사전에 확인해 보도록 해야 합니다.
#즉 mysql -u <id> qmail 로 접근해 봐서 비밀번호를 넣고 설정한 qmail DB 에 들어갈
#수 있는지를 확인하라는 것입니다.
#즉, 이때에 login 은 DB의 접근권한(?)을 가지는 id를 이용하라는 것입니다.
#mysql의 access 모드와 password의 적절한 조정이 필요할 것 입니다..
#최초에 오픈시라면 mysql의 DB접근권한을 예제와 같는 test db와 같이 모두 열어놓고
#인터페이스가 완료 된후에 테스트를 거쳐서 적당하게 권한을 조정하는것이 속을 썩지
#않을 것입니다. 모두 열었을 경우에는 password 항목을 지정할 필요가 없습니다.
#(외부로도 열린것이 이므로 웨퍼나 파이어 월을 설정하지 않았으면 보안에 심각한 문
#제가 있음은 당연합니다.)
#
#설치되어 운영되고 있는 mysql DB 에 위에서 언급한 db 명 테이블명및 해당 이용자의
#권한을 설정합니다.
#
#먼저 qmail이란 db를 하나 만듭니다.
mysqladmin create qmail
#MySQL안에 popori란 계정을 추가하고(user table) popori가 qmail db를 사용할 수 있도록 권한을 줍니다(db table).
#이용자 테이블을 생성합니다. 이것은 필요에 따라서 만드는 것이므로 메일의 서비스
#에 필요한 항목을 추가해서 테이블을 만들어도 됩니다. 즉 해당 항목만 있으면 된다
#는 이야기 입니다.
#
CREATE TABLE users (
id char(32) NOT NULL,
crypt char(32) binary DEFAULT '' NOT NULL,
passwd char(32) NOT NULL,
uid int(10) unsigned DEFAULT '65534' NOT NULL,
gid int(10) unsigned DEFAULT '65534' NOT NULL,
shell char(100) DEFAULT '/sbin/nologin' NOT NULL,
home char(100) DEFAULT '' NOT NULL,
start_date date DEFAULT '0000-00-00' NOT NULL,
expire_date date DEFAULT '2030-01-01' 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, crypt, home) values ('test', encrypt('test1212'), '/usr/home/master/test');
#
#각 필드의 간단한 설명은...
#
# id field: 이용자 id
# uid field: 이용자 번호
# gid field: 이용자 그룹번호
# home field: 이용자의 메일박스 디렉토리 패스 (풀 패스이어야 함)
# shell field: 이용자의 SHELL (보통은 /bin/false를 지정)
# mbox_host field: 잘모름. 하여튼 NULL 이어야 한다고 함...
# 원문 : Recieve a mail when one's address ("To: xxx@xxx") is
# 'id'@'mbox_host'. must be accepted NULL.
# 수정 : To 에 기본적으로 E-mail 주소 설정을 해주는거라는거 같음.
# Not Null 은 데이터가 없을때 NULL로 설정 함으로 DB 의 속
# 도 향상을 기대한것으로 보임.
#
# active: 메일을 이용할 수 있는 상태 플래그
# start_date: 메일의 이용기간을 정함. 시작일
# expire_date: 메일의 이용 기간을 정함. 끝일
#
#테이블을 생성후에 이용자의 계정을 DB에 등록 합니다.
#passwd 기록시에는 encryption 을 하기위에 mysql 매크로 거맨드인 password () 를
#사용합니다. 이용자가 등록되었으면 DB에 기록한 home 디렉토리를 생성 합니다.
#
#예제:
#MySQL table
#+----------+-------+------+---------------------+------------
#+ id | uid | gid | home | shell
#+----------+-------+------+---------------------+------------
#+ username | 65534 | 65534 | /somewhere/username | /bin/false
#
#
#와 같이 DB에 등록되어 있으면...
#
mkdir /usr/home/master/test;
/var/qmail/bin/maildirmake /usr/home/master/test/Maildir;
chown -R 65534 /usr/home/master/test;
chgrp -R 65534 /usr/home/master/test;
#
#
#와 같이하여 Maildir 구조의 메일박스를 생성합니다. 꼭 해당 ID로 소유가 설정 되도
#록 하여야 합니다. (아니면 수신되지 않음) 이때 Maildir 로 서비스가 되게 하려면
#해당이용자의 홈디렉토리의 .qmail 파일에 ./Maildir/ 문장을 넣어 놓거나 qmail 실
#행시에 기본 서비스가 ./Maildir/ 서비스가 되도록 구동합니다.
#qmail-start ./Maildir/ 로 실행하는데 /var/qmail/rc 의 스크립트 파일을 수정 합니
#다. 아니면 그냥 Mailbox 를 사용하셔도 됩니다.
#
#
#설정되었으면 테스트를 해봅니다.
#
/var/qmail/bin/qmail-getpw test localhost
#username12346789/home1/qmail-box/g/gumdong
#
#위와 같이 id, uid, gid, home 을 돌려줄것입니다. 제대로 DB를 접근하지 못하면 DB
#의 내용과는 다른 alias의 기본값이 나타나게 됩니다. 이때는 mysql을 log파일을 남
#기도록 실행을 시켜서 적절한 시점에 SQL 쿼리를 내는지 확인하십시오. mysqld를 로
#그를 남기도록 실행하는 방법은 다음과 같습니다. 단일 프로세스로 구동되는 것이므
#로 실제 서비스에는 적용하지 마십시요.
#
# # /var/libexec/mysqld --log=/tmp/mysql.log
#
#
#그러면 테스트 메일을 보내 봅니다.
#
# # echo to:username | /var/qmail/bin/qmail-inject
#
#성공적으로 메일이 보내졌는지 ~username/Maildir/new 디렉토리의 파일을 참조하십시
#요. 만약에 파일이 보내지지 않으면 /var/mail/maillog 파일을 확인하여 원인을 찾아
#보도록 하여야 합니다.
#
#파일의 수신은 성공적으로 이루어 졌는데 POP-3 와 연동하는 checkpassword 가 정상
#적으로 동작하는 지 다음과 같이 확인합니다.
#
# # telnet localhost pop3
# Trying 127.0.0.1...
# Connected to localhost.
# Escape character is '^]'.
# +OK <6195.936784767@calypso.mydomain.or.kr>
# user username
# +OK
# pass 1234
# +OK
# quit
# +OK
# Connection closed by foreign host.
#
#이렇게 pass 까지 DB에 넣어진 내용과 일치하여 +OK 가 나오면은 확인 된것입니다.
#만일 제대로 되지 않으면 DB의 crypt 항목에 있는 비밀번호와 일치하는지 확인해야
#합니다.
#
#crypt 항목에 비밀번호를 넣을 때는 encrypt() 의 mysql 매크로를 이용합니다.
#
# > update users set crypt=encrypt('1234') where id='gumdong'\g
#
#정상적으로 동작하지 않을시에 앞에서 언급한 큐메일의 로그와 mysql의 로그를 참조
#하십시요.
#
#
#아래에 적는 내용은 사용자 quota제한에 대한 내용입니다. 웹메일을 써보면 사용자별로 10M, 20M의 용량을 주고 제한을 하지요. 그런 방법입니다.
#몇가지의 추가로 쉽게 제한이 가능합니다.
#quota제한은 unix의 quota를 이용한 것이 아니라 내부적으로 du명령을 이용해서 구현이 되있습니다.
#1. MySQL안에 있는 users테이블에 필드를 1개 추가합니다.
#mysql> alter table users add quota_size int unsigned default 0 not null;
#2. /var/qmail/control/sqlserver 파일에 다음의 1줄을 추가합니다.
#quota yes
#단지 위의 두가지 설정으로 quota가 제한됩니다. 저의 경우 qmail과 tcpserver를 restart시켰는데 시켜주지 않아도 가능한지 확인은 못했습니다.
#용량제한은 MySQL의 users테이블에서 quota_size필드에서 정합니다. 필드값이 0이라면 제한을 안합니다. 500이면 500k로 제한을 두는겁니다. 1 = 1kbyte입니다.
#만약 제한된 용량을 초과하는 메일이 들어오면 보낸사람에게 Mailbox is Full이라는 메세지와 함께 바로 리턴이 됩니다.
#--------------------------------------------------------------------------------
#큐메일을 가동합니다.
#마지막으로, 큐메일을 가동합니다.
#
#외부에서 메일을 수신하기 위해서는 /var/qmail/control/rcpthost 파일을 삭제한다.
rm /var/qmail/control/rcpthosts
/var/qmail/bin/qmail.sh start
#
#
#
#
#
# imap을 설치합니다.
#imap-4.7b.tar.Z 과 imap-4.7b-maildir-mysql.patch을 /usr/local에 복사합니다.
tar -xzvf /usr/local/imap-4.7b.tar.Z;
mv /usr/local/imap-4.7 /usr/local/imap;
#(이름을 바꿔 주시구요)
cd /usr/local/imap;
patch -p1 < ../imap-4.7b-maildir-mysql.patch
make bsf;
ln -s /usr/local/imap/c-client /usr/local/imap/include;
ln -s /usr/local/imap/c-client /usr/local/imap/lib;
cp /usr/local/imap/ipopd/ipop2d /usr/sbin;
cp /usr/local/imap/ipopd/ipop3d /usr/sbin;
cp /usr/local/imap/imapd/imapd /usr/sbin;
vi /etc/services;
# 하시고 pop-2 pop-3 imap 에 #이 있으면 풀어주시면 되구요!!
###########################################################################
pop2 109/tcp postoffice #Post Office Protocol - Version 2
pop2 109/udp postoffice #Post Office Protocol - Version 2
pop3 110/tcp postoffice #Post Office Protocol - Version 3
pop3 110/udp postoffice #Post Office Protocol - Version 3
imap 143/tcp imap
imap 143/udp imap
##############################################################################
vi /etc/inetd.conf;
##############################################################################
pop2 stream tcp nowait root /usr/sbin/ipop2d ipop2d
imap stream tcp nowait root /usr/sbin/imapd imapd
##############################################################################
# 하시고 pop-2 pop-3 imap 에 #이 있으면 풀어주시면 되구요!!
killall -HUP inetd;
# imap test
##############################################################################
#telnet localhost 143
#Trying ::1...
#Trying 127.0.0.1...
#Connected to localhost.
#Escape character is '^]'.
#* OK localhost IMAP4rev1 v12.264 server ready
#^]
#telnet> quit
#Connection closed.
##############################################################################
#telnet 0 143
#Trying 0.0.0.0...
#Connected to 0.
#Escape character is '^]'.
#* OK [211.234.7.126] IMAP4rev1 v12.264 server ready
#aaa login master su
#aaa OK LOGIN completed
#lll logout
#* BYE co2.ritsworld.com IMAP4rev1 server terminating connection
#lll OK LOGOUT completed
#Connection closed by foreign host.
##############################################################################
#
#
#
#
# 기본설치 끝
#
--------------------------------------------------------------------------------
7. PHP4설치
[root@www /apache_1.3.14]#cd ..
[root@www /tmp]#cd php-4.0.4pl1
[root@www /php-4.0.4pl1]#../configure --with-apache=../apache --with-mysql=/usr/local/mysql \
--with-imap=/usr/local/imap \
--enable-track-vars --disable-debug
옵션에 대한 추가 설명은 PHP메뉴얼을 참고하기 바랍니다.
만약 PostgeSQL이나 mSQL을 사용한다면 --with-pgsql=디렉토리경로 --with-msql=디렉토리 경로와 같이 옵션을 사용하면 된다.
--enable-track-vars 옵션은 HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어 있는 GET, POST, cookie 변수들이 어디서 왔는지 기억하도록 합니다. 꼭 설정해 두세요.
위의 많은 옵션들을 모두 설치하실 필요는 없습니다. 배포판인 레드햇의 기본설정에서 저가 필요한 것들을 예를 들어 나열한 것이므로 꼭 필요한 옵션만 사용하시면 됩니다.
그중에서 파란색으로 되어 있는 옵션은 기본적으로 권장하는 옵션들입니다.
[root@www /php-4.0.4pl1]#make 컴파일을 하고,
[root@www /php-4.0.4pl1]#make install 인스톨을 한다.
8. Apache Configure(2), 컴파일
[root@www /php-4.0.4pl1]#cd /tmp/apache_1.3.14
[root@www /apache_1.3.14]#./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
단골로 묻는 질문의 원인 중에 하나가 위의 옵션 때문입니다. 옵션을 줄 때 그냥 TAB key를 두르리지 말고 위 옵션을 잘 보고 입력하세요.
[root@www /apache_1.3.14]#make 아파치를 컴파일한다.
[root@www /apache_1.3.14]#make install 아파치 인스톨
10. 환경설정 파일 편집
[root@www /tmp]# cp /tmp/php/php.ini-dist /etc/httpd/php.ini
[root@www /tmp]#vi /etc/httpd/php.ini
[root@www /tmp]#vi /usr/local/apache/conf/httpd.conf 아파치의 환경설정 파일을 열어서 다음과 같은 설정을 한다.
360라인쯤에 Default 시작페이지 설정을 해 준다
<IfModule mod_dir.c>
DirectoryIndex index.php index.php3 index.php4 index.html index.htm
</IfModule>
720라인 정도에서 다음 내용의 주석을 풀고 원하는 환경으로 설정을 한다.
AddType application/x-httpd-php .php .php3 .ph
AddType application/x-httpd-php-source .phps
[root@www /root]# /usr/local/apache/bin/httpd -t 엔터를 두드리고 다음과 같은 메시지만 있으면 아파치 환경이 잘 설정되었다.
Syntex OK
만일 에러가 발생하면 몇 번째 라인에서 잘못되었다는 메시지를 잘 보고 수정하기 바랍니다.
[root@www root]# /usr/local/apache/bin/apachectl start
/usr/bin/apachectl start: httpd started 이런 메세지가 보인다면 아파치가 정상적인 실행이 된 것이다.
11. Test 하기
테스트 화일을 만들어 확인을 해 보세요. 물론 홈페이지가 뜰 수 있는 디렉토리가 되어야 합니다.
메인 홈페이지 경로는 아파치 환경설정파일 281라인 정도에서 DocumentRoot "/usr/local/apache/htdocs"에 의해 설정된 경로입니다.
[root@www /root]#vim /usr/local/apache/htdocs/test.php
에디터 창에서 다음내용을 입력합니다.
<?
phpinfo();
?>
저장을 하고 브라우저에서 http://localhost/test.php 또는 홈페이지URL/test.php를 입력하여 어떤 내용이 출력되는지 봅시다.
다음과 같은 내용이 출력된다면 정상적으로 설치가 잘 되었습니다.
PHP Version 4.0.4pl1
System Linux linux.kyungsung.ac.kr 2.2.16-22smp #1 SMP Tue Aug 22 16:39:21 EDT 2000 i686 unknown
Build Date Nov 27 2000
Configure Command './configure' '--with-config-file-path=/etc/httpd' '--disable-debug' '--with-imap=/usr/local/imap' '--with-mysql=/usr/local/mysql' '--with-apache=../apache_1.3.14' '--enable-track-vars' '--prefix=/usr' '--with-regex=system' '--with-gettext' '--with-gd=shared' '--with-jpeg-dir=/usr' '--with-png' '--with-zlib' '--enable-pic' '--with-db2' '--with-db3' '--with-gdbm' '--enable-debugger' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sysvsem' '--enable-sysvshm' '--with-exec-dir=/usr/bin' '--enable-ftp' '--enable-inline-optimization' '--with-xml' '--with-ldap' '--enable-shared' '--enable-yp'
Server API Apache
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/httpd
ZEND_DEBUG disabled
Thread Safety disabled
This program makes use of the Zend scripting language engine:
Zend Engine v1.0.3, Copyright (c) 1998-2000 Zend Technologies
with Zend Optimizer v1.0.0, Copyright (c) 1998-2000, by Zend Technologies
속도 테스트
자신의 시스템에서 다음과 같은 프로그래밍으로 Optimizer하기전과 비교해 보세요.
<?
$start = time();
for ( $i = 1; $i <= 5000000; $i++ );
$t_time = time() - $start;
echo "Time : $t_time";
?>
참고로 저의 PC에서는 처음 14초가 나왔는데 Optimizer를 하고난후 7초가 나왔습니다.
12. 시스템 부팅시 자동으로 아파치 데몬과 MySQL데몬 실행하기
/etc/rc.d/rc.local 파일을 열어서 마지막 줄에 다음 명령을 입력한다.
[root@www /root]#vim /etc/rc.d/rc.local
/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/mysql.server &
또는 다음과 같이 배포판처럼 부팅시 실행과정을 확인하도록 만들 수도 있다.
[root@www root]# cp -p /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
[root@www root]# cp -p /usr/local/mysql/bin/mysql.server /etc/rc.d/init.d/mysqld
[root@www root]# cd /etc/rc.d/rc3.d
[root@www rc3.d]# ln -s /etc/rc.d/init.d/httpd S85httpd
[root@www rc3.d]# ln -s /etc/rc.d/init.d/mysqld S85mysqld
혹시 서버를 xwindow로 부팅되도록 해두었다면 /etc/rc.d/rc5.d 디렉토리에 같은 방법으로 설정해 두면 된다
[root@www2 rc3.d]#reboot 리부팅을 시켜 잘 실행이 되는지 확인하자.
이상으로 MySQL+Apache+PHP4+IMAP+Zend Optimizer 의 설정을 모두 마쳤습니다.
부족한 내용이 많지만 이 글을 통해 리눅스에 입문하는 분들께 많은 도움이 되기를 바랍니다.
2001. 1. 28 백명훈(mhbaek@chollian.net)
###################################################################################################
또 좀 다른 아파치 + PHP 설치 방법...
설치하기
%주의 : 여기서는 쓰고자 하는 DB들과 gd, imap이 깔려있는 상태라 가정한다.
위의 부분들에 대해서는 kldp내의 문서를 참조하기 바란다.
# 패키지 풀기
$ gzip -d -c apache_1.3.12.tar.gz | tar xvf -
$ gzip -d -c mod_ssl-2.6.2-1.3.12.tar.gz | tar xvf -
$ gzip -d -c php-4.0.0.tar.gz | tar xvf -
# 아파치 소스 위치 확인 => 아파치를 설치하는 곳이 아닌 소스 위치다 헷갈리지 말기.
%참고로 필자는 apache는 /usr/local/src/apache-1.3.12에
mod_ssl-2.6.2-1.3.12는 /usr/local/src/mod_ssl-2.6.2-1.3.12에 소스를 풀었다
$ cd mod_ssl-2.6.2-1.3.12
$ ./configure \
--with-apache=../apache_1.3.12
$ cd ..
# mv apache_1.3.12 apache
# PHP를 컴파일 하기 전의 아파치 사전 설정
$ cd apache
$ ./configure --prefix=/usr/local/apache
$ cd ..
# PHP컴파일 하기 (DB,imap,gd,apache)
$ cd ../php-4.0.0
$ CFLAGS='-O2 -I/path/to/openssl/include' \
./configure --with-apache=../apache --with-mysql=/usr/local/mysql --with-imap=/usr/local/imap \
--enable-track-vars --disable-debug
$ gmake
$ gmake install
$ cd ..
# Apache 와 mod_ssl, PHP3, etc...컴파일하기.(마무리 하기)
$ cd apache_1.3.x
$ SSL_BASE=/path/to/openssl \
./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a \
--enable-module=php4
$ make
$ make certificate
$ make install
이제 다 마무리 되었다.
+--------------------------------------------------------+
| You now have successfully built and installed the |
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the |
| (initially created or preserved) configuration files |
| |
| /usr/local/apache/conf/httpd.conf
| |
| and then you should be able to immediately fire up |
| Apache the first time by running: |
| |
| /usr/local/apache/bin/apachectl start
| |
| Or when you want to run it with SSL enabled use: |
| |
| /usr/local/apache/bin/apachectl startssl
| |
| Thanks for using Apache. The Apache Group |
| http://www.apache.org/ |
+--------------------------------------------------------+
위 안내 메세지가 제대로 뜬다면 성공한 것이다.
conf파일을 수정하여 기동하자.
$cd /usr/local/apache/bin/apachectl startssl
설치중에 넣었던 패스워드를 넣으면 기동이 된다. ps ax | grep httpd로 확인해 본다.
:)
--------------------------------------------------------------------------------
다음 이전 차례
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기