사이드바 영역으로 건너뛰기

게시물에서 찾기분류 전체보기

142개의 게시물을 찾았습니다.

  1. 2006/05/06
    짜증 지대로다....
    단단이아빠
  2. 2006/02/22
    아! 민주노총..쪽팔린 줄 알아라...
    단단이아빠
  3. 2006/01/31
    단단이와 당구장에
    단단이아빠
  4. 2006/01/26
    CVS(버전관리 시스템) 사용하기
    단단이아빠
  5. 2006/01/03
    덕수궁에서 늦은 가을을 보면서..
    단단이아빠
  6. 2006/01/03
    삶에 치여 가는 것...
    단단이아빠
  7. 2005/06/21
    미친 거 아닌가.. 민주노총
    단단이아빠
  8. 2005/05/09
    [펌]스스로가 만든 덫에 걸린 우리들--김진숙
    단단이아빠
  9. 2005/04/15
    바보짓을 하다.
    단단이아빠
  10. 2005/03/29
    php를 쉘스크립트로 이용할 때 인자 처리
    단단이아빠

tcpserver: fatal: unable to bind: address already used

메일 프로세스 중 남아 있는 게 있을 때

 

1)

# ps -ef|grep qmail

 

를 하여서 떠있는 프로세스를 모두 죽이고 다시 시작해 본다.

 

2)

rprm 설치되어 있는 sendmail 이 있는지 확인해보고 있으면 삭제하고 다시 해본다.

 

3)

#netstat -na|grep LISTEN|grep 25

해보면 25번포트(smtp) 에 리슨하고 있는 것이 없어야 재시작이 가능

 

4)

 

lsof -i:25

해서 해당 PID 를 Kill 하고 다시 시작

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

qmail-quota

#!/bin/sh

# Qmail - mailquotacheck
#
# Author: Paul Gregg <pgregg@tibus.net>
# Url: http://www.tibus.net/pgregg/projects/qmail/
# Run this program ala: |mailquotacheck   before your ./Maildir/ or ./Mailbox
# entry in the .qmail file. e.g:
# |/usr/local/bin/mailquotacheck
# ./Maildir/

# Default quota is set to 3000Kb per user, this can be changed below

# You can also install per user quotas which will override the defaults
# by creating a .quota file in the same directory as the .qmail file, e.g:
# echo 10240 > .quota
# this will give that user a 10Mb mail quota

# Individual per message quotas can also be used by creating a file telling
# mailquotacheck that maximum permitted size per email - this is useful
# when you want to allow someone, say, a 20Mb limit but want to prevent emails
# larger than 5Mb. e.g:
# echo 5120 > .maxmsgsize

# Program location defs:
cat="/bin/cat"
expr="/usr/bin/expr"
wc="/usr/bin/wc"
du="/usr/bin/du"
bc="/usr/bin/bc"
cut="/bin/cut"
awk="/bin/awk"
echo="/bin/echo"

# Program defaults
# quota is the default user quota if the user does not have a .quota file
quota=3000
# hardquotabuffer is the 'extra' space allowed for small (<1Kb) messages.
hardquotabuffer=100

# -------------------------------------------------------------------------
# You should not need to change anything below here
# -------------------------------------------------------------------------


# Find out how big the email is in Kb - We don't care about < 1Kb messages.
msgbytes=`$cat - | $wc -c`
ERROR=$?
if [ ${ERROR} -ne 0 ]; then
  # If this fails then you are in trouble ;) - Check program defs at the top.
  $echo "QUOTACHECK ERROR: The mail quotacheck program cannot determine the size ofnthis message. Please inform postmaster of the site you are trying to mail to."
  exit 100
fi
msgkb=`$expr $msgbytes / 1024`
# or you can use:
# msgkb=`$echo $msgbytes / 1024 | $bc`


# Get the users 'home' directory - where there .qmail file is
dir="$HOME"


# Figure out a users mail quota - default is 3000Kb (see above)
# If there is a file '.quota' in their dir then use that value instead.
if [ -f "$dir/.quota" ]; then
  quota=`$cat $dir/.quota 2>/dev/null`
  ERROR=$?
  if [ ${ERROR} -ne 0 ]; then
    $echo "An error occurred while trying to read the recipients quota limit.nDelivery will be attempted again later."
    exit 111
  fi
fi


# Impose a maximum 'per message' email size.  Use the users quota as standard
# but if there is a file '.maxmsgsize' then use that value.
maxmsgsize=$quota
if [ -f "$dir/.maxmsgsize" ]; then
  maxmsgsize=`$cat $dir/.maxmsgsize`
  ERROR=$?
  if [ ${ERROR} -ne 0 ]; then
    $echo "An error occurred while trying to read the recipients maximum message size.nDelivery will be attempted again later."
    exit 111
  fi
fi

absquota=`$expr $quota + $hardquotabuffer`

# What is the maildir's current disk usage
du=`$du -sk $dir | $awk {'print $1'}`
ERROR=$?
if [ ${ERROR} -ne 0 ]; then
  $echo "An error occurred while trying to get the user's current quota usage.nDelivery will be attempted again later."
  exit 111
fi

duwould=`$expr $du + $msgkb`

#debug - mail all these vars to me.
#set | mail pgregg@tibus.net

# Refuse the email if it is too big
if [ $msgkb -gt $maxmsgsize ]; then
  $echo "Sorry, This message is larger than the current maximum message size limit:nYour message was $msgkb Kbytes and the maximum is $maxmsgsize Kbytes."
  exit 100
fi

# Check if the user would be above the absolute quota
if [ $duwould -gt $absquota ]; then
  # Ok, we aren't going to deliver this message, lets try and give the sender
  # a decent error message
  if [ $du -gt $quota ]; then
    $echo "User's Disk Quota Exceeded.nSorry, your message cannot be delivered as the recipient has exceededntheir disk space limit for email."
  else
    $echo "Sorry, Your message cannot be delivered bacause the recipient does not havenenough disk space left for it.";
  fi
  if [ $du -lt $absquota ]; then
    $echo "n However, small (< 1Kb) message will be delivered should you wish
    toninform the person you tried to email."
  fi
  exit 100
fi

# If the email would put the user over quota, then refuse it (accept < 1Kb)
if [ $msgbytes -gt 1024 ]; then
  if [ $duwould -gt $quota ]; then

    $echo "User's Disk Quota Exceeded.nSorry, your intendend recipient has too much mail stored in their mailbox.nYour message totalled $msgkb Kbytes ($msgbytes bytes).nHowever a small (< 1Kb) message will be delivered should you wish toninform the person you tried to email."
    exit 100

  fi
fi

exit 0

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

apache + php + mysql + mssql + qmail + phpmail(1)

필요한 파일들은 /usr/local/src 에 모아놓고 작업한다.

구성이 복잡한 세팅의 경우에는 text 파일로 작업하고 #sh text 파일의 형태로 실행.

실행되는 서버의 경우(구성파일에 의해 구동 환경이 정해지는 경우) /usr/local 밑에 설치한다.

 

cent-os 4.3 으로 시스템을 구성하였고 꼭 필요한 경우가 아니면 yum 으로 rpm 인스톨해서 사용하였다.

 

세팅한 서버 종류

apache 1.3.33

mysql 4.1.11

curl 7.13.1

mhash 0.9.2

libmcrypt 2.5.7

clibpdf

swf

mm

freetype

jpeg

libungif

libpng

libtiff

t1lib

ming

gd

freetds

 

 

export LANG=ko_KR.eucKR

요새는 utf-8 형식으로 되어 있어서 언어 설정을 안해주면 화면이 온통 맛이 간다. perl의 경우에는 계속 에러메시지 봐야 하고.

일단 새로 리눅스를 세팅한 경우에는 언어설정해주는게. 참고로 이건 bash에서.

 

# vi /etc/sysconfig/i18n

LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

요렇게 적어주면 에러메시지가 뒹귁어로 나오는 건 안볼수 있다.

 

1. apache 설치(자세한 설정은 php를 설치한 후에 한다.)

  //rpm으로 깔려 있는 apache 가 있는지 확인 후 삭제한다.

  #rpm qa | grep apache

  #rpm e apache

 

  # tar xvfz apache_1.3. 33.tar.gz
  #vi configure-apache.txt

 

./configure

--prefix=/usr/local/apache

--enable-shared=max

--enable-module=rewrite

--enable-shared=rewrite

--enable-module=info

--enable-shared=info

--enable-module=so

 

(사실 아파치의 경우 그냥 깔아도 큰 문제 없는데 설정 안해주면 꼭 나중에 말썽이다.)

 

  # cd apache_1.3. 33

  #sh ../ configure-apache.txt
  # make
  # make install

 

2. cronlog 설치

 

http://cronolog.org/download/index.html

#./configure
#make
#make install

httpd.conf 수정
CustomLog "|/usr/local/sbin/cronolog --symlink=/var/log/httpd/access_log /var/log/httpd/%Y/%m/access_log.%Y%m%d" combined

 

3.  mysql 설치

 

  # tar xvfz mysql-4.1.11. tar.gz

  #vi configure-mysql.txt

./configure

--prefix=/usr/local/mysql

--localstatedir=/usr/local/mysql/data

--enable-local-infile

--enable-thread-safe-client

--with-extra-charsets=all

--with-zlib

--with-charset=euckr

--with-extra-charsets=complex

--without-readline

 

(mysql 이 4.1 대로 올라가면서 콘솔상에서 한글이 안써지는 문제가 있다.  charset 하고 readline 설정을 해줘야 웹상에서 보이는 한글과 콘솔상에서 보이는 한글이 맞춰진다.)

 

  # cd mysql-4.1.11
  # sh ../ configure- mysql.txt

  # make
  # make install-strip
  # /usr/local/mysql/bin/mysql_install_db

 

(mysql을 편하게 사용하기 위한 스크립트 작성)
  # vi /usr/local/mysql/share/mysql/mysql.server

 

$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &

부분을

$bindir/mysqld_safe --user=root --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &

로 바꾼다.

 

(세팅 초기에는 위의 부분에 --log=로그파일명 을 덧붙여서 초기 세팅과정에서 에러나 오류가 있는지 확인하는 것이 좋다.)

 

# 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/mysqld start 

 

- 동적 라이브러리링크

# vi /etc/ld.so.conf
/usr/local/mysql/lib/mysql 추가
ldconfig

 

 

4. freetds 설치

 

mssql 을 사용하기 위해서 freetds 를 설치한다.

# tar xvfz feetds-0.63.tgz

# cd freetds-0.63/

# ./configure --prefix=/usr/local/freetds
# make
# make install

 

 

 

5. qmail 설치

 

(제발 패치 안할수는 없나.. 이건 정말 삽질이다.)

 

종류도 많은 qmail 패치들...

 

 

일단 필요한 패치는 qmail-1.03-mysql-0.7.2.patch

http://download.softagency.net/mysql/Downloads/Contrib/qmail-1.03-mysql-0.7.2.patch.gz

여기에서 구했다.

 

# tar xvfz qmail-1.03.tar.gz

# cd qmail-1.03

# patch -p1 < ../qmail-1.03-mysql-0.7.2.patch

# patch < ../qmail-1.03.errno.patch

 

패치후에 수정해줘야 하는 작업이 몇가지 있다.(mysql 의 인스톨 위치 때문에)

 

mysql.c (mysql.h 절대 위치) :

#include mysql/mysql.h

Makefile (수정내용) :

#include  /usr/local/mysql/include/mysql/mysql.h

 

# for Linux libc6
MYSQL_LIBS=/usr/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl 를
MYSQL_LIBS=/usr/local/mysql/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl

qmail-getpw.c (수정내용) :

#include mysql/mysql.h 를
#include  /usr/local/mysql/include/mysql/mysql.h 

 

계정 생성

 

# mkdir -p /var/qmail


# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails

 

# make

# make setup check

# ./config-fast 메일서버도메인명

 


 

6.  ucspi-tcp 설치

 

# tar xvfz ucspi-tcp-0.88.tar.gz

# cd ucspi-tcp-0.88

# patch < ../ucspi-tcp-0.88-mysql.patch

# patch < ../ucspi-tcp-0.88.errno.patch

 

db.c 수정 (mysql.h 절대 위치)

#include
#include

conf-ld 수정

gcc -s  -I/usr/include/mysql -L/usr/local/lib/mysql -lmysqlclient 를
gcc -s -I/usr/local/mysql/include/mysql -L/usr/local/mysql/lib/mysql -lmysqlclient

# make

# make setup check

 

 

7. daemontools 설치

 

# tar xvfz daemontools-0.76.tar.gz

# cd admin/

 

# patch < ../daemontools-0.76.errno.patch

 

나오는 파일 패스입력하는 프롬프트에

File to patch: daemontools-0.76/src/error.h 입력

 

# cd 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 "관련프로세스종료"

 

8. checkpassword 설치

 

# tar xvfz checkpassword-0.90.tar.gz

# cd checkpassword-0.90

# patch < ../checkpassword-0.90-mysql-0.6.6.patch

 

패치는 이걸로.. 버전이 높다고 해서 꼭 좋은 것은 아닌가봐.. 아님 내가 모르는 뭔가가 있던가..

 

mysql.c (mysql.h 절대 위치) :

#include
#include

Makefile (수정내용) :

MYSQL_LIBS=/usr/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl 를
MYSQL_LIBS=/usr/local/mysql/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl

(# Don't edit Makefile! Use conf-* for configuration.
라고 되어 있는데도 이걸 수정하다니... 수정안하면 더 귀찮아지니까..

결국 제작자의 의지라는 건 뭐 수용할 수 있으면 수용하는 정도 ㅎㅎ)

 

# patch < ../checkpassword-0.90.errno.patch

 

# make

# make setup check

 

 

9. 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

 

# chmod 755 /etc/init.d/qmail

 

# 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 (Host,User,Password) values ('localhost', 'phpmail', password('phpmail'));

 

mysql> insert into db values ('localhost', 'phpmail', 'phpmail', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', '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', '/home/phpmail/메일서버도메인명/phpmail');

 

mysql> exit

 

# mkdir -p /home/phpmail/메일서버도메인명/phpmail

# /var/qmail/bin/maildirmake /home/phpmail/메일서버도메인명/phpmail/Maildir

# echo ./Maildir/ > /home/phpmail/메일서버도메인명/phpmail/.qmail
# chown -R 99:99 /home/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

 

 

10. imap 설치

# ln -s /usr/local/mysql/lib/mysql/libmysqlclient.a /usr/lib/mysql/libmysqlclient.a

(귀찮아서...)

 

다시 imap4.7 로 복귀...

 

Linux 7.1이상에서는 ucspi-tcp, imap 설치시에 time.h가 문제가 됩니다.
따라서, 아래와 같이 수정하신다음에 다른 패키지를 컴파일하거나 설치하실때는
원래대로 되돌려 놓으면 됩니다.

# mv /usr/include/sys/time.h /usr/include/sys/time.h.ori
# ln -s /usr/include/time.h /usr/include/sys/time.h

 

 

# tar xvfz imap-2001a_patched.tar.gz

# cd imap-2001a

# make slx PASSWDTYPE=std SSLTYPE=none

# cd ..

# cp -R imap-2001a /usr/local/imap

# cd /usr/local/imap/

# ln -s c-client/ include

# ln -s c-client/ lib

# cd 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

11. libiconv 설치

 

http://www.gnu.org/software/libiconv/

 

# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz

 

# tar xvfz libiconv-1.9.2.tar.gz

# cd libiconv-1.9.2

# ./configure --enable-static --enable-shared

# make

# make install

 

12. freetype2 설치

 

# tar xvfz freetype-2.2.1.tar.gz

# cd freetype-2.2.1

# ./configure --enable-shared --enable-static

# make

# make install

 

 

 

 

13. PHP 설치

 

# tar xvfz php-4.4.2.tar.gz

# cd php-4.4.2

# vi ../conf-php.txt

 

CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient" ./configure
--with-apxs=/usr/local/apache/bin/apxs
--with-kerberos
--with-mysql=/usr/local/mysql
--with-imap=/usr/local/imap
--with-iconv
--with-gd
--with-jpeg-dir
--with-zlib
--with-png-dir
--with-gif
--with-tiff
--with-freetype-dir=/usr
--with-dbm
--with-gdbm
--with-ldap
--with-xml
--with-dom
--with-language=korean
--with-charset=euc_kr
--with-ttf
--with-mssql=/usr/local/freetds
--enable-sockets
--enable-pcntl
--enable-mbstring
--enable-mbregex
--enable-mssql
--enable-ftp
--enable-sockets
--enable-track-vars
--enable-module=so
--enable-gd-native-ttf
--enable-ftp
--enable-sockets
--disable-debug
--enable-sysvsem
--enable-sysvshm
--enable-shmop
--enable-track-vars
--enable-freetype-4bit-antialias-hack
--enable-calendar
--enable-sigchild
--enable-magic-quotes
--enable-trans-sid
--enable-inline-optimization
--enable-bcmath
--disable-cgi
--with-config-file-path=/usr/local/apache/conf
--enable-versioning
~

 

# sh ../conf-php.txt

 

흠.. 에러가 나네요...

jpeg 를 못찾는다는 에러가

 

지금 서버를 cent-os 4.3 으로 깔았는데 이게 좋은 이유중의 하나가 yum 이라는 유틸을 이용해서 업데이트가 간편하다는 점...

 

그래서

 

#yum list

#yum -y install libjpeg-devel.i386

 

그리고는 다시

#sh ../conf-php.txt

 

흠.. 다시 에러가

이번엔 png를 못찾는다고

 

그래서

#yum -y install libpng-devel.i386

 

그리고는 다시

#sh ../conf-php.txt

 

 

 

이번엔 에러가 나지 않고 구성이 끝났네요..

 

짜증이 물밀듯이 밀려온다. CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient" 를 선언해 주지 않으면 에러가 나는구만....

 

# 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

 

mssql.datetimeconvert = Off

upload_max_filesize = 20M

 

 

 

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

 

AddType application/x-httpd-php .html .htm .php .ph .inc .sc
추가

 

# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# /etc/init.d/httpd start

 

14. hcode 설치

 

# tar xvfz hcode2.1-mailpatch3.tar.gz

# cd hcode2.1-mailpatch3

# make

# cp hcode /usr/bin

 

 

15. procmail 설정

 

# vi /home/phpmail/메일서버도메인/phpmail/.qmail

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

 

# vi /home/phpmail/메일서버도메인/phpmail/.procmailrc

PATH=/bin:/usr/bin:/usr/bin
DEFAULT=/home/phpmail/메일서버도메인/phpmail/Maildir/
MAILDIR=/home/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 /home/phpmail/메일서버도메인/phpmail/Trash

 

16. quota 설정

 

# cp qmail-quota /var/qmail/bin

# chmod 755 /var/qmail/bin/qmail-quota

 

# vi /home/phpmail/메일서버도메인/phpmail/.qmail

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

 

# echo 1024 > /home/phpmail/메일서버도메인/phpmail/.quota
# touch /var/log/qmail/procmail
# chown -R nobody:nobody /var/log/qmail/procmail

 

 

17. autorespond 설정

 

# tar xvfz autorespond-2.0.3.tar.tar

# cd autorespond-2.0.3

# make

# make install

 

# vi /home/phpmail/메일서버도메인/phpmail/.qmail

|/var/qmail/bin/qmail-quota
|/var/qmail/bin/qmail-autorespond 86400 5 /home/phpmail/메일도메인/phpmail/.autorespond /var/log/qmail/vaca 0 $
|/var/qmail/bin/preline /usr/bin/procmail -p -m /home/phpmail/메일서버도메인/phpmail/.procmailrc

 

# mkdir -p /var/log/qmail/vaca
# chown -R nobody:nobody /var/log/qmail/vaca
# echo "test" > /phpmail/메일서버도메인/phpmail/.autorespond

 

18. phpmail 1.0.x 설정

 

# tar xvfz phpMail-1.0.1.tar.gz

# cd phpMail-1.0.1

 

테스트 중에 생성한 테이블 삭제

 

# /usr/local/mysql/bin/mysql -u phpmail -p phpmail

mysql> drop table mailuser;

mysql> exit

 

테이블 작성

# /usr/local/mysql/bin/mysql -u phpmail -p phpmail < phpmail-linux.sql

 

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 /home/phpmail/files

# chown -R nobody:nobody /home/phpmail/

 

 

 


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

살면서 회사에 사표를 처음 내보네요...

 
그동안 회사에서 사장이 새로 들어오고(원래 우리 회사가 감정평가하고 부동산 프렌차이즈사업을 하려는 벼룩시장하고 합해져서 생긴회사.. 그동안 계속 적자나고 그런 부분을 벼룩시장에서 보전해주고 하다가 결국은 사장 파견) 기존의 사장이 감정평가 회사를 분사시켜서 나가고.. 내가 따라다니는 상무님은 중간에서 상황만 보다가(원래는 내년쯤에 인터넷 감정회사로 분사할 계획이었어요.) 결국은 6월말에 사표내는 걸로 결론이 난 통에 나도 30일에 사표를 냈습니다.
 
새로온 사장은 내가 하는 일이 뭔지를 모르니까 별 말은 없을건데...(뭔 놈의 회사가 퇴직을 하려면 한달전에 사표를 제출하고 부서장 면담을 해야만 퇴직을 인정해 준다는 허무맹랑한 이야기를.. 퇴직금을 안준다나요.. 퇴직 후 14일 내에는 퇴직금 주게 되어 있습니다. 안주면 노동부에 고발해야지...) 팀장은 회사하고 이야기 잘 되어서 사표내면 수리해주기로 했다고 하네요.. 그래서 목요일 까지만 근무하기로 했습니다. 흠 퇴직금은 언제, 얼마나 주려나... 잘만하면 노트북 하나 살 정도는 되지 않을까 기대합니다. 혹시 술살지 모른다고 기대하시는 분들은 꿈깨시길... 둘째도 들어선 마당에 한푼이라도 아끼는 자린고비 단단이아빠..
 
생각해보면 2001년도에 이 바닥에 뛰어들면서 사표는 처음 내보는 것 같네요.. 처음 동생하고 하던 사업은 업종을 바꿔가면서(생각해보면 아찔합니다. 인터넷 게임->성인만화->성인게임->웹에이전시) 2004년까지 유지하다가 결국은 망하고,2004년에 들어간 회사는 마케팅 대행 회사였는데 지금하는 인터넷 감정일을 하다가 저는 이 회사로 들어오게 되면서 뭐 사표나 퇴직금 그런 이야기는 못하고..(원래 아는 형님이라 이후에 돈독한 관계만 유지)
하긴 마님께서 이 회사에 들어온 다음에 마음을 놓으시게 되었으니까요.. 월급 안밀리고 나오고..
 
이후 일은 무지하게 걱정은 되는데(상무님께서 회사를 만들어서 거기서 일하는데 과연 지금처럼 월급 안밀리고 잘 나올 수 있을지는 해봐야 아는 거니까...) 사표내는 기분은 상큼(?)한 경험이었습니다.
 
한줄요약
 
사표냈다. 퇴직금 나와도 술 못산다. 혹시나 지금 가는 회사 망하면 일자리 구할 때 도와줍쇼.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

짜증 지대로다....


 

광주항쟁 이후 군인이 곤봉과 방패를 들었다....

 

난 지금 밤새며 벌어먹고 살려고 일하는 중이고...

 

사람들은 별 관심없어 보이고......

 

국가에서 결정해서 그 자리는 기지를 지을 예정이라고 하면 그 땅에 살던 사람들은 당연하게 다른 곳으로 이사가야 한다고 생각하는 사람들은 댓글을 달고...

 

도대체...

 

광주민중항쟁 비디오를 몰래 보면서 도대체 저때 사람들은 왜 그렇게 외면하고 모른척했는지 이해가 안갔는데, 지금 내 모습이 딱 그꼴이다.

 

정말 짜증 지대로다.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

아! 민주노총..쪽팔린 줄 알아라...

위원장 선거만 했단다... 임시대의원대회에서.. 맞다. 폭력반대 결의,전원 구속결의도 했다지 아마.

 

제발 창피한 줄 알았음 싶다. 회사의 돈을 삥뜯어서(준 거 받은 것도 아니고 달라고 했다잖여) 구속된 부위원장 덕분에 사퇴한 지도부 구성하는게 그렇게 급한 일인가?

 

 

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

단단이와 당구장에

이번 설날은 단단이 엄마보다 내가 설겆이한 횟수가 더 많은 거 같다. 흠.. 이러다가 내가 주부습진에 명절증후군이 걸리는 건 아닌가 라는 터무니없는 소리를 하면서 안산에서 올라와 처가집에 들러 장인어른,처남과 함께 당구장에 놀러갔다.

 


 

흠.. 단단이가 좀 폼이 난다.

 

 


 

이번 설날을 계기로 엄마보다 아빠를 더 좋아하게 되길 바랬지만 그건 너무 큰 바램이었나 보다.

 

 


 

엄마하고 사진찍을 때 같은 다정한 모습이 잘 안나온다.

 

 


 

 


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

CVS(버전관리 시스템) 사용하기

회사에서 버전관리 시스템을 사용하기로 하고 CVS를 도입하였다.

문제는 예전에도 혼자서 해보려다가 몇번을 실패하였다는 점. 분명히 사용법 문서와 책에 적혀진 대로 그래도 했는데도 에러만 나고 원하는 결과를 얻지 못하다가 그냥 원시적인 방법(날짜 붙여가면서 새로 폴더 만들어서 백업해놓는)을 이용하기로 했었다.

하지만 이번에는 회사 차원에서 진행하는 거고 이 기회에 CVS에 대해서 완전히 알아야 할것 같다.

 

1.설치

 

먼저 윈도우 환경에서 Serve-Client 로 CVS 를 이용하기로 결정되었다.

 

http://www.cvsnt.org 에서 cvsnt 프로그램을

http://www.tortoisecvs.org/ 에서 tortoisecvs (이건 cvs 프로그램을 GUI 환경에서 사용하기 위해서 이다.) 프로그램을 다운 받는다.

 

cvsnt 를 먼저 설치하고 그 다음에 tortoisecvs 를 설치한다.

 

설치는 그냥 간단하다!!! 문제는 사용법!!!

 

저장소를 설정하고 파일을 추가하고 그 파일을 체크아웃해서 작업을 하고 그 후에 커밋하는 것이 작업의 모든 것이다. 이 쉬운것을 하기 위해서 지난 3일간 헤매고 옆자리 동료에게 물어보고 컴퓨터를 포맷할 것인지 심각하게 고민해야 했다.

 

2.저장소(Repository)

 

cvsnt 의 기능을 이용해서 저장소를 설정하는 것보다 콘솔에서 직접 입력해서 하는 게 더 편하다.(문제는 콘솔에서 직접 입력할 경우에 포토샵에서 작업한 PSD 파일과 아래아 한글에서 작업한 hwp 파일이 깨진다는 점이다.)

 

먼저 적당한 폴더 이름(내 경우에는 D:cvs_repo 로 하였다.) 으로 저장소 폴더를 생성한다.

 

 

cvs 가 제대로 깔려져 있는지 먼저 확인하고

 

 

그 폴더를 저장소로 하겠다고 cvs 에 알려주면 저장소를 설정하는 작업은 끝난다.

 

작업해야 할 파일들이 이미 있는 경우에는 적당한 폴더에 모아놓은 후에 그 폴더에 들어가서 그 폴더를 모듈로 등록해주면 체크아웃해서 이용할 수 있다.(이 부분이 이해가 안되서 헤맸다. 망할!! 영어공부를 해야해.. 에러 메시지만 잘 이해했어도 삽질은 안할 수 있었는데...)

 

 

>cvs -d D:cvs_repo import -m " " rprice_web rprice_web initial

-d 는 저장소 폴더를 지정해주는 것이다.

rprice_web 은 모듈을 지정하는 중복되지 않은 단어로 프로젝트 이름으로 생각하면 되겠다.

 

3.체크아웃(checkout)

 

저장소에 있는 파일을 작업할 수 있게 내보내는 역할을 한다.

tortoisecvs 를 사용할 경우에는 편하게 작업할 수 있는데 적당한 폴더(작업을 수행할 폴더이다. 나의 경우에는 cvs_work 라는 폴더를 생성해서 그쪽에서 작업을 한다.) 를 선택해서

마우스 오른쪽 버튼을 클릭하면 cvs 명령을 사용할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

4.업데이트

 

5.커밋

 

 

6.브랜치










진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

덕수궁에서 늦은 가을을 보면서..


 

요즘은 사진을 찍으려 하면 자기 나름대로 포즈를 잡는다.

 

아이를 키우는 재미는 그가 주는 번거로움보다 크다.

 

다만 그의 인생을 온전히 책임져 줄 수 없음에도 책임져야만 할 것 같은 책임감이....

 

 


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

삶에 치여 가는 것...

언제부터인지 해야할 일들에 밀려서 살아가는 것 같다.

지금 맡아놓은 일들이...

 

회사 업무.. 뭐 이거야 회사 출근해 있는 동안에 꾸준히 진행하면 되는 거니까 문제는 없구.

 

주안이 한국언어문화연구원 사이트.. 이건 주안이 쪽에서 자료를 제대로 안만들어주니까 늦어져도 내 책임은 아닌거 같고.. 게다가 거의 작업은 끝나서 마무리만 하면 되니까..

 

문제는 현우 사이트...

믿고 있는 후배녀석 사이트를 붙잡고 있는게 지난 추석때부터 지금까지다...죽겠구만..

 

공부는 해야 하고 집에 가면 우리 딸하고 놀아줘야 하고... 잠은 자야 하고 오락도 해야 하고 책도 봐야 하고 CSI 마지막 편도 봐야 하고..

 

올해는 자본론 꼭 다시 봐야지라고 스스로에게 새해 약속을 했는데 지켜질지도 모르겠고..

 

갈수록 내가 삶의 주인이 아니라 삶에 치여 가는 느낌이....

 

 

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크