linux

Total 136
Today 0
profile_image
ino
05-11-13 15:15 0개 3,192회
phpMail 1.0 설치문서
출처:KLDP
apache
설치
# gzip -d apache_1.3.27.tar.gz
# tar xvf apache_1.3.27.tar
# cd
apache_1.3.27
# ./configure --prefix=/usr/local/apache
--enable-shared=max --enable-module=rewrite --enable-shared=rewrite
--enable-module=info --enable-shared=info
# make
# make
install
mysql 설치
# gzip -d mysql-3.23.55.tar.gz
# tar xvf mysql-3.23.55.tar
# cd
mysql-3.23.55
# ./configure --prefix=/usr/local/mysql
--with-charset=euc_kr
# make
# make install
# cd
/usr/local/mysql/bin/mysql_install_db
# vi
/usr/local/mysql/share/mysql/mysql.server

* 182라인을 다음과 같이
수정

$bindir/safe_mysqld --user=root
--datadir=$datadir --pid-file=$pid_file &
#
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
# ln -s
/etc/init.d/mysqld /etc/rc3.d/S90mysqld
# /etc/init.d/mysql
start
qmail 설치
# gzip -d qmail-1.03.tar.gz
# tar xvf qmail-1.03.tar
# cd
qmail-1.03
# mkdir -p /var/qmail
# sh user.ids
# make
# make
setup check
# ./config-fast 메일서버도메인명
ucspi-tcp
설치
# gzip -d ucspi-tcp-0.88.tar.gz
# tar xvf ucspi-tcp-0.88.tar
#
cd ucspi-tcp-0.88
# make
# make setup check
daemontools
설치
# gzip -d daemontools-0.76.tar.gz
# tar xvf
daemontools-0.76.tar
# cd daemontools-0.76
# cd
admin/daemontools-0.76
# package/install
# vi /etc/inittab

* 마지막라인의 다음내용을 삭제후
저장

SV:123456:respawn:/command/svscanboot
# rm -rf /service
# rm -rf /command
# cd
command
# mv * /usr/local/bin
# ps -ef | grep svscan
# kill -9
"관련프로세스종료"
checkpassword
설치
# gzip -d checkpassword-0.90.tar.gz
# tar xvf
checkpassword-0.90.tar
# cd checkpassword-0.90
# make
# make
setup check
qmail 설정
# mkdir -p /var/qmail/supervise/qmail-send/log
# mkdir -p
/var/qmail/supervise/qmail-smtp/log
# mkdir -p
/var/qmail/supervise/qmail-pop3/log
# chmod +t
/var/qmail/supervise/qmail-send
# chmod +t
/var/qmail/supervise/qmail-smtp
# chmod +t
/var/qmail/supervise/qmail-pop3
# vi
/var/qmail/supervise/qmail-send/run

#!/bin/sh
exec
/var/qmail/rc
# vi
/var/qmail/supervise/qmail-send/log/run

#!/bin/sh
exec
/usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail/send
# vi
/var/qmail/supervise/qmail-smtp/run

#!/bin/sh
QMAILDUID=`id
-u qmaild`
NOFILESGID=`id -g qmaild`
exec
/usr/local/bin/softlimit -m 5000000 \
/usr/local/bin/tcpserver -v
-R -l 0 -x /etc/tcp.smtp.cdb \
-u "$QMAILDUID" -g "$NOFILESGID" 0
smtp /var/qmail/bin/qmail-smtpd
2>&1
# vi
/var/qmail/supervise/qmail-smtp/log/run

#!/bin/sh
exec
/usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail/smtp
# vi
/var/qmail/supervise/qmail-pop3/run

#!/bin/sh
exec
/usr/local/bin/softlimit -m 5000000 \
/usr/local/bin/tcpserver -v
-R -H -l 0 0 pop3 /var/qmail/bin/qmail-popup \
메일서버도메인명
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
2>&1
# vi
/var/qmail/supervise/qmail-pop3/log/run

#!/bin/sh
exec
/usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail/pop3
# chmod 755
/var/qmail/supervise/qmail-send/run
# chmod 755
/var/qmail/supervise/qmail-send/log/run
# chmod 755
/var/qmail/supervise/qmail-smtp/run
# chmod 755
/var/qmail/supervise/qmail-smtp/log/run
# chmod 755
/var/qmail/supervise/qmail-pop3/run
# chmod 755
/var/qmail/supervise/qmail-pop3/log/run
# cd ~alias
# echo 사용자아이디
> .qmail-mailer-daemon
# echo 사용자아이디 > .qmail-postmaster
#
echo 사용자아이디 > .qmail-root
# cp /var/qmail/boot/proc
/var/qmail/rc
# vi /var/qmail/rc

* 7라인을 다음과 같이
수정

qmail-start '|preline procmail ./Maildir/'
splogger qmail
# mkdir -p
/var/log/qmail/send
# mkdir -p /var/log/qmail/smtp
# mkdir -p
/var/log/qmail/pop3
# chown qmaill /var/log/qmail /var/log/qmail/send
/var/log/qmail/smtp /var/log/qmail/pop3
# vi /etc/init.d/qmail

#!/bin/sh
#
Comments to support chkconfig on RedHat Linux
# chkconfig: 2345
80 80
# description: sendmail을 대체하는 빠르며, 안정적이고, 유연한 MTA
#
Source function library.
. /etc/rc.d/init.d/functions
# Source
networking configuration.
. /etc/sysconfig/network
# Check
that networking is up.
[ ${NETWORKING} = "no" ] && exit
0
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-smtp"
svc -p
/var/qmail/supervise/qmail-smtp
echo "Pausing qmail-pop3"
svc
-p /var/qmail/supervise/qmail-pop3
;;
cont)
echo
"Continuing qmail-send"
svc -c
/var/qmail/supervise/qmail-send
echo "Continuing
qmail-smtp"
svc -c /var/qmail/supervise/qmail-smtp
echo
"Continuing qmail-pop3"
svc -c
/var/qmail/supervise/qmail-pop3
;;
restart)
echo
"Restarting qmail:"
echo "* Stopping qmail-smtp."
svc -d
/var/qmail/supervise/qmail-smtp
echo "* Sending qmail-send
SIGTERM and restarting."
svc -t
/var/qmail/supervise/qmail-send
echo "* Restarting
qmail-smtp"
svc -u
/var/qmail/supervise/qmail-smtp
;;
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
# vi
/etc/tcp.smtp

127.0.0.1:allow,RELAYCLIENT=""
릴레이를 허용할
아이피주소
:allow,RELAYCLIENT=""
:allow
#
/etc/init.d/qmail cdb
# /etc/init.d/sendmail stop
# mv
/etc/rc3.d/S88sendmail /etc/rc3.d/K88sendmail
# mv /usr/lib/sendmail
/usr/lib/sendmail.old
# mv /usr/sbin/sendmail
/usr/sbin/sendmail.old
# ln -s /var/qmail/bin/sendmail
/usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail
/usr/sbin/sendmail
# vi /var/qmail/control/sqlserver

mysql_use
yes
server localhost
login phpmail
password phpmail
db
phpmail
table mailuser
port 3306
check_host yes
quota
yes
ignore_validity yes
swap_check_order
yes
# /usr/local/mysql/bin/mysqladmin
create phpmail
# /usr/local/mysql/bin/mysql -u root -p
mysql
mysql> insert into user values ('localhost', 'phpmail',
password('phpmail'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
'N', 'N', 'N', 'N');
mysql> insert into db values ('localhost',
'phpmail', 'phpmail', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y',
'Y');
mysql> flush privileges;
mysql> exit;
#
/usr/local/mysql/bin/mysql -u phpmail -p phpmail
mysql> create table
mailuser (
mbox_host varchar(32) binary null,
id varchar(32) binary
not null,
passwd varchar(32) binary not null,
crypt varchar(32)
binary not null,
uid int(5) unsigned not null default '99',
gid
int(5) unsigned not null default '99',
shell varchar(16) not null
default '/bin/false',
home varchar(64) binary not null,
quota_size
int(10) null,
start_date date not null default
'0000-00-00',
expire_date date not null default '0000-00-00',
active
enum('Y','N') not null default 'Y'
);
mysql> insert into mailuser
(mbox_host, id, passwd, crypt, uid, gid, shell, home) values ('메일서버도메인명',
'phpmail', 'phpmail', encrypt('phpmail'), 99, 99, '/bin/false',
'/phpmail/메일서버도메인명/phpmail');
mysql> exit;
# mkdir -p
/phpmail/메일서버도메인명/phpmail
# /var/qmail/bin/maildirmake
/phpmail/메일서버도메인명/phpmail/Maildir
# echo ./Maildir/ >
/phpmail/메일서버도메인명/phpmail/.qmail
# chown -R 99:99 /phpmail
#
/etc/init.d/qmail start
# pstree

|-svscan-+-supervise---qmail-send-+-qmail-clean
|
| |-qmail-lspawn
| | |-qmail-rspawn
| | `-splogger
|
|-3*[supervise---multilog]
|
`-2*[supervise---tcpserver]
#
/var/qmail/bin/qmail-getpw phpmail 메일서버도메인명

* 다음과 같은 출력결과가 나와야
정상

phpmail9999/phpmail/메일서버도메인명/phpmail0
imap 설치
imap-2001a 버그가 존재하여
imap-4.7c를 이용하실것을 권장합니다.

# gzip -d imap-2001a.tar.gz
#
tar xvf imap-2001a.tar
# cd imap-2001a
# gzip -d
imap-4.7c.tar.gz
# tar xvf imap-4.7c.tar
# cd imap-4.7c
# make
slx
# cd ..
# cp -r imap-2001a /usr/local/imap
# cp -r
imap-4.7c /usr/local/imap
# cd /usr/local/imap
# ln -s c-client
include
# ln -s c-client lib
# cd /usr/local/imap/c-client
# ln
-s c-client.a libc-client.a
# cd ..
# cp imapd/imapd
/usr/sbin/in.imapd
# vi /etc/xinetd.d/imap

service
imap
{
disable = no
flags = REUSE
socket_type = stream

protocol = tcp
wait = no
user = root
server =
/usr/sbin/in.imapd
log_on_failure +=
USERID
}
# /etc/init.d/xinetd
restart
# telnet localhost 143
Trying 127.0.0.1...
Connected to
localhost.
Escape character is '^]'.
* OK localhost.localdomain
IMAP4rev1 v12.264 server ready
a00 login phpmail@메일서버도메인명 비밀번호
a00
OK LOGIN completed
a01 list mbox *
* LIST (\NoInferiors) NIL
INBOX
a01 OK LIST completed
a02 logout
#
libiconv
설치
# gzip -d libiconv-1.7.tar.gz
# tar xvf libiconv-1.7.tar
# cd
libiconv-1.7
# ./configure
# make
# make install
php 설치
# vi /etc/ld.so.conf

* 다음라인을
추가

/lib
/usr/lib
/usr/local/lib
/usr/local/mysql/lib/mysql
#
gzip -d php-4.3.1.tar.gz
# tar xvf php-4.3.1.tar
# cd php-4.3.1
#
CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient" ./configure
--with-apxs=/usr/local/apache/bin/apxs --with-imap=/usr/local/imap
--with-mysql=/usr/local/mysql --with-iconv=/usr/local
--with-language=korean --with-charset=euc_kr --enable-track-vars
--enable-module=so --disable-cli --disable-cgi
--with-config-file-path=/usr/local/apache/conf --enable-versioning

* --with-imap-ssl 관련
에러발생시 아래내용을 configure에 추가

--with-imap-ssl=/usr
위의
내용은 imap makefile내 ssl부분을 none으로 바꾸시면 ssl을 사용하지 않도록 할수 있습니다.
또는
imap 설치시 make slx PASSWDTYPE=std SSLTYPE=none 으로 설치를 하십시오
# make
# make install
# cp
php.ini-recommended /usr/local/apache/conf/php.ini
# vi
/usr/local/apache/conf/php.ini

* 1088라인을 다음과 같이
수정

register_globals =
On

*
1093라인을 다음과 같이 수정

magic_quotes_gpc =
On
hcode 설치
# gzip -d hcode-2.1m3.tar.gz
# tar xvf hcode-2.1m3.tar
# cd
hcode-2.1m3
# make
# cp hcode /usr/bin
procmail
설정
# vi /phpmail/메일서버도메인/phpmail/.qmail

|/var/qmail/bin/preline
/usr/bin/procmail -p -m /phpmail/메일서버도메인/phpmail/.procmailrc
# vi
/phpmail/메일서버도메인/phpmail/.procmailrc

PATH=/bin:/usr/bin:/usr/bin
DEFAULT=/phpmail/메일서버도메인/phpmail/Maildir/
MAILDIR=/phpmail/메일서버도메인/phpmail/Maildir/
LOGFILE=/var/log/qmail/procmail
VERBOSE=no
SHELL=/bin/sh
######
제목 디코딩 ######
:0
Efhw
*^(Subject|From|Cc):.*=\?EUC-KR\?(B|Q)\?
|formail -c |
hcode -dk -m
:0
Efhw
*^(Subject|From|Cc):.*=\?ks_c_5601-1987\?(B|Q)\?
|formail
-c | hcode -dk -m
#########################
:0
* ^Subject:
.*(advert|광고|홍보|廣告|몰카)
"/phpmail/메일서버도메인/phpmail/Trash/cur"
#
/var/qmail/bin/maildirmake /phpmail/메일서버도메인/phpmail/Trash
quota 설정
# cp qmail-quota /var/qmail/bin
# chmod 755
/var/qmail/bin/qmail-quota
# vi /phpmail/메일서버도메인/phpmail/.qmail

|/var/qmail/bin/qmail-quota
|/var/qmail/bin/preline
/usr/bin/procmail -p -m /phpmail/메일서버도메인/phpmail/.procmailrc
# echo 1024 >
/phpmail/메일서버도메인/phpmail/.quota
# touch /var/log/qmail/procmail
#
chown -R nobody:nobody /var/log/qmail/procmail
autorespond
설정
# gzip -d autorespond-2.0.3.tar.gz
# tar xvf
autorespond-2.0.3.tar
# cd autorespond-2.0.3
# make
# make
install
# vi /phpmail/메일서버도메인/phpmail/.qmail

|/var/qmail/bin/qmail-quota
|/var/qmail/bin/qmail-autorespond
86400 5 /phpmail/메일도메인/phpmail/.autorespond /var/log/qmail/vaca 0
$
|/var/qmail/bin/preline /usr/bin/procmail -p -m
/phpmail/메일서버도메인/phpmail/.procmailrc
#
mkdir -p /var/log/qmail/vaca
# chown -R nobody:nobody
/var/log/qmail/vaca
# echo "test" >
/phpmail/메일서버도메인/phpmail/.autorespond

* 정식배포판에서 제가 약간의 소스수정을
했습니다. 배포판을 설치하시면 안되실겁니다 :)

apache
설정
# vi /usr/local/apache/conf/httpd.conf

* 1036라인 아래에 다음내용을
추가

AddType
application/x-httpd-php .html .php
.ph
# cp
/usr/local/apache/bin/apachectl /etc/init.d/httpd
# /etc/init.d/httpd
start
phpmail 1.0.x
설정





압축풀기

* DocumentRoot 디렉토리에
압축파일을 다운받는다
# gzip -d
phpmail-1.0.x.tar.gz
# tar xvf phpmail-1.0.x.tar
# cd
phpmail-1.0.x
테이블 작성

* 먼저 작성된 mailuser테이블을
삭제한다
# /usr/local/mysql/bin/mysql -u
phpmail -p phpmail
mysql> drop table mailuser;
mysql>
exit;
# cd sql
# /usr/local/mysql/bin/mysql -u phpmail -p phpmail
< phpmail.sql
Enter password:
테이블이 제대로 생성됐는지 확인한다
#
/usr/local/mysql/bin/mysql -u phpmail -p phpmail
mysql> show
tables;

+-------------------+
|
Tables_in_phpmail |
+-------------------+
| mailaddr |
|
maildomn |
| mailgrup |
| mailnoti |
| mailpop3 |
|
mailpost |
| mailrule |
| mailuser
|
+-------------------+
8 rows in set (0.01 sec)
maildomn테이블에 도메인정보를 입력한다
mysql>
insert into maildomn values ('메일서버도메인명', '회사명', '관리자아이디', '관리자메일주소',
'관리자전화번호', '관리자핸드폰번호', '도메인디스크위치', '도메인당 아이디갯수', '도메인기본제한용량', '등록일자',
'사용여부');
sample> insert into maildomn values ('nsets.org',
'phpmail', 'popori', 'popori@kldp.org', '02-2103-xxxx', '017-339-xxxx',
'/phpmail/nsets.org', '20', 10240, '2003-04-28', 'Y');
디렉토리 생성
# mkdir -p /phpmail/nsets.org
첨부파일 업로드 디렉토리생성
# mkdir -p
/phpmail/files
# chown -R nobody:nobody /phpmail
환경설정
# vi DocumentRoot/phpmail-1.0.x/lib/config.lib.html
관리자
메일주소입력
> $phpmail["admin"] = "popori@kldp.org";
편지함의 홈디렉토리
설정
> $phpmail["mhome"] = "/phpmail"; 편지함 홈디렉토리가 NFS일경우 nfs주석을 해제
선택해준다
> $phpmail["mtype"] = "lfs"; # $phpmail["mtype"] = "nfs"; 첨부파일
업로드 디렉토리설정
$phpmail["upload"] = $phpmail["mhome"]."/files/";
접속확인
브라우저를 띄우고 phpmail접속을 확인한다
http://도메인//phpmail-1.0.x

댓글목록

등록된 댓글이 없습니다.