'분류 전체보기'에 해당하는 글 655건

큐메일(qmail) 에서는 여러가지 방법의 필터링을 사용한다.
유명한 rblsmtpd , spamassassin , clamav , procmail , maildrop , simscan , qmail-scanner 등 다양하다.

필터링 단계에 따라 방법도 달라진다.
크게 qmail-smtpd 단에서 필터링 하는 방법과 사용자의 메일박스에 도착하기 전에 필터링하는 방법으로 나눌 수 있다.

1) spf (Sender Policy Framework) 를 이용한 필터링
참조 : http://qmail.kldp.net/wiki/wiki.php/qmail_antispam#s-4.1

도메인 설정시 이런 설정을 본적이 있을 것이다.
; spf - kisarbl.or.kr
        IN      TXT     "v=spf1 ip4:111.222.123.234 ip4:122.222.123.234 ~all"
위의 IP 주소는 메일발송하는 서버의 IP 를 지정하게 된다.
~all , -all 등이 있는데, 각각 softfail , fail 등의 spf 값을 리턴하게 된다.

지난번 qmail SRPM 빌드 하는 글에서 언급한 패키지는 spf 패치가 적용되어 있다.
그래서 spf 필터링을 활성화 시켜주면 된다.

/var/qmail/control/spfbehavior  를 3 또는 4 로 해주면 된다.(0 은 비활성화)

특정도메인에 대해서 spf 설정을 확인하는 방법은
dig mydomain.com  txt 
로 확인할 수 있다.

예를 들어 mydomain.com 이 A 사의 웹호스팅을 이용한다고 하자.
이때 mydomain.com 에서 웹어플(폼메일,예약,문의등)로 메일을 보낼 때 spf 를 설정하지 않으면 받는 메일서버에서 거부당할 수 있다.(대부분의 포털은 설정이 되어 있다고 봐야 한다)
"v=spf1 ip4:{웹호스팅IP주소} ~all"
도메인 설정에 추가해준다.

dnsever 의 경우  "호스트 설명 텍스트(TXT) 추가" 항목에 넣어주면 된다.

2) rblsmtpd 를 이용한 필터링.

rbl 은 Real-time Blocking List 라고 한다.
한마디로 스팸발송IP 들을  블랙리스트, 화이트리스트 로 만들어서 블랙리스트에 등록된 IP 주소로 오는 메일을 거부하는 필터링 방법이다.

역시나 qmail SRPM 패키지에는 rblsmtpd 가 포함되어 있다.

/var/qmail/supervise/qmail-smtpd/run 파일을 직접수정해서 rblsmtpd 설정을 할 수 있다.
SRPM 패키지에는 /var/qmail/control/conf-knetqmail 을 수정해서 할 수 있도록 미리 설정되어 있다.
USE_RBL="no"
RBL_DNS="-r bl.spamcop.net -r rbl.linuxstudy.pe.kr"
다음과 같은 항목인데, USR_RBL 의 값을 yes 로 바꿔준다.
RBL_DNS 부분은 rbl 사이트를 지정하는 부분이다.
현재 rbl.linuxstudy.pe.kr 은 잠정중단된 상태이니 뺀다.
USE_RBL="yes"
RBL_DNS="-b -r bl.spamcop.net -r sbl.spamhaus.org -r spamlist.or.kr"
위와 같이 바꿔준다. (spamhaus 와 kisarbl 을 추가했다)
그리고 -b 옵션을 추가해 줬는데, 해당 옵션은 메일거부시 바로 failure notice 응답을 해준다.
그래야 발송IP 가 블랙리스트에 등록이 되어 있는지 바로 알 수 있게 된다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
지난번에 squirrelmail 을 사용하는 방법을 짧게나마 설명했었다.
이번에는 roundcube 를 써보자. (http://roundcube.net)

먼저 다운로드 하자.
http://roundcube.net/download  에서 최신버전을 다운받는다.(현재 0.3 stable)
다운로드하고 서버에 올리거나, 다운로드 주소를 찾아서 서버에서 wget 으로 직접 내려받는다.
# wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.3-stable/roundcubemail-0.3-stable.tar.gz?use_mirror=jaist
다운후에 압축을 풀고(tar xvzf ...tag.gz ) 적당한 위치에 설치한다.
참고로, squirrelmail 이 사용하던  /usr/share 로 위치를 정했다.
정확한 위치는 /usr/share/roundcube
# tar xvzf roundcubemail-0.3-stable.tar.gz
# chown root.root roundcubemail-0.3-stable
# cp roundcubemail-0.3-stable /usr/share/roundcube
apache 설정도 squirrelmail 방식으로 처리했다.

/etc/httpd/conf.d 에 roundcube.conf  파일을 만들고, 내용은 다음과 같이 입력했다.
Alias /roundcube /usr/share/roundcube
웹서버를 재실행해주면 다음부터  mymail.com/roundcube  로 접속할 수 있다.


DB 설정을 해준다.
라운드큐브 는 다람쥐메일과는 다르게 설정등을 저장하기 위해 DB 를 사용한다.
mysql , postgresql 등을 사용할 수 있다.
별도의 DB 를 만들어주거나, 자신이 사용하던 DB 설정을 사용할 수 있다.

별도로 만든다면 다음처럼 만들어 준다.
mysql> create databases roundcube;
mysql> GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost'  IDENTIFIED BY '계정암호' WITH GRANT OPTION ;
mysql> FLUSH PRIVILEGES;


다음과 같은 테이블을 사용하니, 사용하던 DB 인 경우 테이블명이 겹치지 않나 주의한다.
| cache              
| contacts           
| identities         
| messages       
| session            
| users              
설정값은 아래의 자동설정시 값을 입력한다.


기본설정을 해보자.
자동설정은 mymail.com/roundcube/installer  접속해서 단계적으로 설정한다.

사전패키지,extension 등을 체크한다.
추가 패키지가 필요한 경우 설치해준다.
yum install php-gd php-mysql php-mcrypt
dom 패키지는 php-xml 을 설치한다.
yum install php-xml
php 를 업그레이드하는것을 권장한다.


IMAP 설정 부분은
$rcmail_config['default_host'] = 'localhost';
정도로 입력해준다.

SMTP 부분도
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_auth_type'] = 'PLAIN';
정도를 주의해 준다.(smtp_auth_type 은 직접 main.inc.php 를 수정한다.

언어설정 하는 부분은 (ko_KR) 으로 지정해준다.
$rcmail_config['language'] = 'ko_KR';

기타 자세한 설정은 다음을 참조한다.
http://trac.roundcube.net/wiki/Howto_Config


설정을 마친후에는

해당 설정파일을 복사하거나 다운로드 해서 config/ 디렉토리에 넣어준다.
(main.inc.php , db.inc.php)


그리고 다음단계에서 설정을 체크해서 이상이 없는지 확인한다.
DB 접속이 이상없는지 확인하고, 기본 DB schema 를 생성해준다.

SMTP , IMAP 의 설정을 확인해 본다.

설정파일까지 복사/테스트 한 후 웹메일에 접속해본다. ( mymail.com/roundcube )

완료. 로그인하고 사용하자.
로그인 화면이 반긴다. 심플하다 못해 썰렁하지만... 로그인하면.
제법 그럴듯한 웹메일 인터페이스 화면을 볼 수 있다.

버전이 0.3 버전밖(?)에 안되서 큰 기대를 안했는데, 꽤 쓸만한 완성도를 보인다.
써보고 괜찮으면, 다람쥐메일은 작별을 고해야 할 듯 하다. ^^


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
어제 네이버에서 NHN Deview 행사를 했다.
개방,개발자,오픈소스 등에 대한 내용을 다루었다.
참석은 하지 못했지만, 생중계로 나마 살짝 엿볼 수 있었다.

네이버는 다른 곳과 비교해서 앞서나가는 모양이다.
특히나 먼저 시작(?)했다고 볼 수 있는 다음의 느린 혹은 잠행 과는 전혀 반대상황이다.
다음도 개발자행사를 여러가지 하고 있다.
네이버는 좀더 범위를 넓혔다고 해야하나? 개발자와 오픈소스를 사용하는 사용자들.

사실 이런 개발자 행사자체가 일반인을 대상으로하는 행사와 비교하면 미미하기 때문에 도토리 키재기 처럼 보일 수 있다. 네이버가 앞으로 어떤 복안을 가지고 진행시키는지 모르겠지만.
최근의 미투데이,오픈소스 등을 살펴보면 조만간 SNS 에 대한 자리를 잡기위한 조치를 취할 듯 하다.
그 부분에 대해서는 네이트,싸이월드를 의식하고 있을듯 하다.

네이트,싸이월드 오픈정책에서 최후의 보루라고 할 수 있는 인증API 는 공개하지 않았다.
그에 대해 네이버가 한발 앞서 가려면 그 부분일 듯 한데, 쉽지않은 결정일 것이다.
어쩌면 서로 눈치를 보고 있을지 모르겠다. 다음,네이버,네이트...

다음은 개인적으로 참 아쉽다.
왠지 그동안의 노력이 별 성과를 내고 있지 못하고 있는 것처럼 보여진다.
좀더 눈에 띄는 결과를 내고, 공개를 하면 좋겠는데, 그 부분이 아쉽다.
좀 늦긴했지만,  http://dna.daum.net/archives/585  이런식의 움직임이 많아졌으면 좋겠다.
다음도 내부의 노하우가 많을텐데, 그런 부분을 공개하면 참 좋을 것 같다.
다음 한메일익스프레스의 UI 도 마음에 들고, 공개하면 다음 짱!
다음 DevDay 행사도 계속이어지는 것이 좋긴 하지만, 대박서비스가 DevDay 를 통해서 나올 수 있도록 지원하면 좋을 듯 싶다.


그리고, 야후.

국내에서의 야후란, 사실 듣보잡의 불명예를 가지는 처지가 되버렸다.
그동안 신경도 쓰지 않았다는 것이 사실이다.
그런데, 야후개발자네트워크 를 보고, 국내 행사도 참석도 해보니.
생각보다 방대한 개발자 지원이 있었다. 다만 국내가 아니라 해외에서 활발하게 진행되고 있다.
국내 지원은 조금이나마 http://ydnkrblog.com 등을 통해 진행되고 있다.
아직은 야후코리아 차원의 지원이라기보다 직원개인의 열정에 의해서 움직이는 것 같다.

포털의 이런 움직임은 개발자 입장에서는 환영일 것이다. 최소한 나는 대 환영.
각 포털의 움직임은 서로 다르지만, 결과적으로 좋은 결과로 이어질 것이라고 본다.
대박서비스 사례같은 것이 나오면 그야말로 금상첨화.
개발자들을 위해 물적,심적 지원을 해줄 자원이 있는 곳은 사실 포털밖에 없다고 본다.



반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
우분투(리눅스) 시스템을 운영중에 있다.
얼마전 하드디스크 에러가 생겨  시스템을 이전하려 한다.
이런 하드에러도 있고, 하드디스크를 큰 용량으로 바꾸려고 할 경우도 있다.

rsync, tar 등을 이용하는 방법도 있지만, 간단하게 cp -a 를 이용하려고 한다.
/var , /usr  등이 별도의 파티션으로 나뉘어져 있는 경우  해당 디렉토리를 뺀 / (루트) 를 복사해야 한다.
별도파티션으로 나뉘어 있던 디렉토리는 나중에 옮겨도 된다.

일단 새 하드디스크를 연결한다.
기존 시스템 하드는 /dev/sda 이고,  연결한 새 하드디스크는 /dev/sdb 라고 가정한다.
/ 는 sda1 ,  /usr 는 sda2 , /var 는 sda3  이라고 한다면,  우선 sda1 을 먼저 옮겨도 되고 다 같이 옮겨도 된다.

sda1 은 sdb1 으로 옮길것이다. 데이터를 이동한다.
현재 시스템이 가동한 상태에서 옮겨도 되긴 하지만, 고려할 사항이 많다.
dev , proc 등 시스템 관련 디렉토리를 주의해야 한다.

별도로 마운트 하고 옮긴다.
mount /dev/sda1 /mnt/sda1
mount /dev/sdb1 /mnt/sdb1
이런식으로 마운트 시키고 데이터를 옮긴다.
cp -a /mnt/sda1/* /mnt/sdb1/
이렇게 하면 따로 dev , proc , var/run , var/lock 등을 신경쓰지 않아도 된다.

새하드디스크로 부팅하려면 어떤값을 바꿔야 하나?
fstab 을 새하드디스크의 설정값으로 변경한다.
이때 복사한 fstab 의 값을 변경한다. 즉 /mnt/sdb1/etc/fstab 을 바꿔준다.
fstab 은 UUID 로 설정해 놓는 것이 편하다.

blkid 명령을 내리면
/dev/sdb1: UUID="{새하드UUID값}" SEC_TYPE="ext2" TYPE="ext3"
새로운 하드의 UUID 값을 얻을 수 있다.
fstab 의 해당 값을 바꿔준다.
UUID={기존UUID값}  / ext3 defaults,errors=remount-ro 0 1
이 설정만 바꾸면 되는가?

새 하드디스크에 grub 을 인스톨한다.
grub-install  /dev/sdb
이런식으로 되면 편하겠는데, 아마 안될 것이다.
grub 쉘로 들어가서 직접 바꿔준다.
grub 명령을 내리면  grub >  이렇게 grub 쉘을 사용할 수 있다.
grub >  find /boot/grub/stage1
stage1 은 하드디스크의 MBR 영역에 설치된다.
find /boot/grub/stage1
 (hd0,0)
 (hd1,0)
이런식으로 나오게 된다. 기존 하드는 hd0 , 새 하드디스크는 hd1  이다.
다음처럼 새 하드디스크에 grub 을 설치한다.
grub >  root (hd0,0)
grub >  setup (hd0)
특별히 에러메세지가 없으면 정상적으로 설치가 되었을 것이다.

이제 grub 의 menu.lst 를 변경한다. 여기서도 fstab 처럼 UUID 를 변경해준다.
/boot/grub/menu.lst 

# kopt=root=UUID={새하드UUID값} ro console=tty0
이 부분과
title           Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic Default
root            (hd0,0)
kernel          /boot/vmlinuz root=UUID={새하드UUID값} ro console=tty0 quiet splash
initrd          /boot/initrd.img
이 부분의 UUID 값을 바꿔준다.


이제 새 하드디스크로 부팅순서를 바꾸고 부팅한다.

재부팅후에 BIOS 설정에서 새 하드디스크로 부팅순서를 바꿔서 부팅해 본다.
정상적으로 부팅되는지 확인해본다. 이상이 있으면 기존의 하드로 다시 바꾸면 된다.
하드디스크 위치나 바이오스 설정 등의 차이로 인해 부팅에 이상이 있는 경우가 있으니 설정을 다르게 바꿔가면서 테스트 해본다.

내 경우는  보드의 SATA (sda) , SCSI 컨트롤러, SATA 컨트롤러(sdb)  이렇게 되어 있었다.
바이오스에서 각각의 부팅순서를 바꾸지 못하고, PCI 인터페이스인  SCSI , SATA 가 묶여서 바뀌게 되었다. 그래서 PCI 인터페이스의 맨 처음으로 바꿔야 했다.
SATA 에서는 primary 로 변경하고,  SCSI 는 보드에서 SATA 를 보드의 안쪽으로 바꿔서 SATA -> SCSI 컨트롤러 순으로 변경하고 서야 제대로 부팅할 수 있었다.



반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
YDN 키 발급을 위해 참 여러가지 테스트를 하게되었다.
발단은 http://blog.1day1.org/333  여기서부터 시작인데, 최소한 상황을 재현(?)할 수 있게 되었다.
정확한 원인이 내쪽에서 찾을 수는 없을 것 같고, 최종적으로 YDN 쪽에서 답을 줘야 할 듯 하다.
아무튼 상황재현과 그 간의 시도를 리포트 한다.

일단 이전 상황은 http://t.1day1.org/post/177433640  여기까지 진행했었다.
즉, 도메인을 체크할 때, 제대로 데이터를 가져가는 것을 확인할 수 있었다.
그런데, 왜 안될까? 뭔가 파일 체크 이외에 더 확인하는 작업이 있다는 것인데...
여기서 부터 상상의 나래(?)를 펼치며 테스트하게 된다.

몇가지 가능성을 따져봤다.
1. 웹서버의 문제.
2. 서버 자체의 문제 혹은 OS(배포판) 문제.
3. 그외의 알 수 없는 문제.

1,2 는 여러서버를 바꿔가면서 테스트 해보기로 했다.
apache2 , lighttpd , nginx 를 바꿔가면서 테스트 했다.
서버는 웹호스팅, 서버호스팅 등 계정을 바꿔가며 테스트 해보았다.

제일먼저 웹서버를 변경하면서 테스트 해봤다.
웹서버 테스트. 각각의 헤더를 살펴보면서 체크를 했다.
(동일서버에서 웹서버를 변경하여 테스트 했다.)

여기까지 바꾸면서 발급을 시도해도 계속 실패가 되었다.


그래서 서버자체의 문제인가 싶어, 다른 계정에서 테스트 해보기로 했다.
실패하던 서버는 Ubuntu(우분투) 이고, 따로 테스트하려는 계정은 Centos 이다.

다른 계정 Centos 에서는 되는 것이었다.
둘다 우분투쪽도 apache 인데, 웹서버가 아니라 OS 배포판의 문제였단 말인가?
좀 생각을 해봤다.

그래서 둘의 apache 설정이 다른 부분이 있어서일까? 헤더를 보면서 차이점을 살펴봤다.
Keep-alive 문제일까?  charset 문제일까? 등등 차이가 있는 부분은 설정을 바꿔가며 테스트 해봤다.


Centos 계정이외에 다른 계정은 모조리 실패하는 것이었다.
아! OS 의 문제로 결론을 내려야 하나? 뭔가 간과하는것이 있지 않을까?
뭔가 놓치고 있는 것이 있을거야! 곰곰히 생각한다.

어! 혹시!

안되는 계정은 모두 1day1.org 의 서브도메인 이었다.
되는 계정인 Centos 는 OOO.com 과 YYY.kr 의 도메인을 사용했었다.
설마 org 도메인이 안되는 것일까?  그래서 교차실험을 했다.

안되는 계정에  OOO.com 의 서브도메인으로 되는 계정에는 ooo.1day1.org 의 서브도메인으로 테스트 했다. 결과는  안되던 계정에 OOO.com 이 제대로 발급이 되었다. 또 되던 계정은 ooo.1day1.org 는 안되는 것이었다.

OTL

정말 그 문제란 말인가? 키 발급시에 도메인 자체도 테스트를 하는 것인가?
nslookup 또는 whois , dig 등을 체크해서 유효한 값을 체크하는 것인가?

그런데, 직접 쿼리를 날려봐도 별다른 차이점을 발견할 수 없었다.
org 도메인의 네임서버 설정이 잘못된 것일까? apache 로그를 보면 파일을 찾아서 가져가는(GET) 것을 볼 수 있다. 설정이 잘못되었다면 파일을 찾지 못할 것인데 말이다.

미궁에 빠지게 된다. 왜! 인지 알 수 없게 되었다.
상황을 재연까지는 하게 되었지만, 왜! 인지는 모르겠다.


여기서 끝내려 했다. 그런데 뭔가 이상했다.
이유가 뭐란 말인가?
안되는 1day1.org 와 되는 OOO.com 은 똑같이 dnsever.com 에 설정되어있다.
둘의 설정상의 차이가 뭐일까?  살펴봤다.

설마!
OOO.com 은
1차: ns1.dnsever.com
2차: ns2.dnsever.com
1day1.org 는
1차:     ns16.dnsever.com
2차:     ns34.dnsever.com
3차:     ns83.dnsever.com
4차:     ns231.dnsever.com
5차:     ns259.dnsever.com
의 각각 다른 네임서버로 설정되어 있다는 차이가 있었다.

YDN 측에서 org 자체를 막거나 하지는 않았을 것이고, dnsever 쪽에서 네임서버 쿼리를 막도록 설정되어 있는 것일까? nslookup , dig 로 테스트 해보면 이상이 없는데 이상하다.
특정 IP 대역에 대해서 막아놨을까? (그럴지도 모르겠다.)
dnsever 가 기존 ns1,ns2 에서  ns16~ns259 등으로 분리를 시켜놓은게 예전 DDOS 공격을 당했을때 공격을 분산,회피 하기 위한 조치였던 것으로 알고 있다. 그렇다 보니 새로운 네임서버에 대해서 쿼리 권한을 제한했을 가능성이 많을 듯 하다.(org 가 막혔다는 것 보다 좀더 설득력이 있어 보인다)

최종 테스트는 되는 다른 도메인을 ns16,ns34 등으로 바꿔보고, 1day1.org 를 독립네임서버로 바꿔보거나 ns1,ns2 의 예전 네임서버로 바꿔서 교차 테스트를 해보면 명확한 답이 나올 듯 싶다.
최종 테스트가 예상대로 나오게 된다면 ns16~ns259 의 어떤 설정 문제일 듯 하다.

dnsever 쪽 문제라고 해도 좀 이상한 부분이 있다.
YDN 쪽에서 검증파일(?) 만 체크하는 것이 아닌 듯 한데, 그에 대한 언급이 있어야 할 듯 하다.
분면 검증파일을 확인했으면서 체크오류를 내는 것은 문제가 있어 보인다.
그 확인사항이 정확히 무엇인지 모르겠지만, API KEY 발급상에서는 그에 대한 언급이 없다.


ps. 현재 최종테스트를 위해 네임서버를 변경해 두었다. 적용되려면 최소한 반나절,하루 정도가 걸리기 때문에 아직 테스트 할 수 없다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
squirrelmail , 일명 다람쥐메일 이라는 웹어플이다.
http://squirrelmail.org
imap 기반으로  imap 서버가 설정되어 있으면 간단하게 사용할 수 있다.

Centos 는 패키지로 설치하면 된다.(다른 배포판도 비슷하다)
yum install squirrelmail
설치후에 apache 를 재실행해준다.

접속은  http://{메일서버주소}/webmail  으로 하면 된다.
(설정은  /etc/httpd/conf.d/squirrelmail.conf 파일에 있다)

imap 서버를 dovecot 을 사용하기 때문에 그에 대한 설정으로 바꿔준다.
http://squirrelmail.org/docs/admin/admin-13.html#ss13.9
설정은 /etc/squirrelmail/config.php 를 바꿔준다.

다음부분만 주의하면 된다.
$imap_server_type       = 'dovecot';
$optional_delimiter     = detect;

한글 사용자는
$squirrelmail_default_language = 'ko_KR';
$default_charset          = 'utf-8';
처럼 바꿔준다.


혹시 이런 에러가 발생한다면
ERROR: Could not complete request.
Query: CREATE "Sent"
Reason Given: Unknown namespace.
다음 부분을 확인한다.
$default_folder_prefix          = 'INBOX.';
/etc/squirrelmail/config.php 에서 config_local.php 를 불러오기 때문에
config_local.php 를 바꿔준다.



반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
기존에 qmail + vpopmail(with cdb) 를 사용했었다.
pop3 는 vpopmail 을 이용했다. 그리고, imap 은 bincimap 을 사용했다.
그런데, squirrelmail 을 사용하려고 테스트 하는 중 bincimap 1.2.x 버전에 없는 기능때문에 사용할 수 없다. 1.3.x 버전은 사용이 가능한 듯 하지만, 컴파일 에러가 생겨서 dovecot 을 쓰기로 했다.
요즘 추세(?)가 dovecot 인것 같다. (bincimap 도 가벼워서 괜찮긴한데)

http://www.dovecot.org/download.html

소스 RPM 을 이용.(vpopmail 적용이 안되나?)

vpopmail 을 적용하기 위해서는 직접 소스컴파일을 해야 하는 듯 하다.
SRPM , spec 을 수정해서도 할 수 있겠지만, 고칠 부분이 많아서 별 의미가 없을 듯 함.


직접 소스 컴파일
wget http://dovecot.org/releases/1.2/dovecot-1.2.4.tar.gz
configure --with-vpopmail
make
make install

설정은 다음과 같이 한다.
http://wiki.dovecot.org/#Dovecot_installation
http://wiki.dovecot.org/BasicConfiguration

dovecot  계정을 생성한다.
useradd -d /usr/local/libexec/dovecot -s /sbin/nologin dovecot

기본적으로 /usr/local/etc 에 설정 파일이 저장된다.
mv dovecot-example.conf dovecot.conf
로 샘플설정파일을 기준으로 자신의 환경에 맞게 설정한다.(주석을 해제해 준다)

protocols = imap
pop3 를 쓸경우 pop3 도 추가

disable_plaintext_auth = no
ssl = no
SSL 을 쓰지 않고, 평문으로 인증하는 것을 허용한다.

auth default {
}
부분의 vpopmail 부분을 해제/추가한다
userdb vpopmail{
}
passdb vpopmail{
}
user = vpopmail
vpopmail 계정 uid, gid 설정
# id -u vpopmail
# id -g vpopmail
를 확인해서 아래 처럼 설정값을 넣어준다.
first_valid_uid = 100
last_valid_uid = 100
first_valid_gid = 101
last_valid_gid = 101

dovecot 실행하기
dovecot 실행스크립트를 복사한다.
cp {소스디렉토리}/doc/dovecot-initd.sh  /etc/init.d/dovecot
chmod 755 /etc/init.d/dovecot




[추가 - 18-06-20]  centos 6 에서 추가

1. centos 6 에서 package 로 설치해봤다. 설정은 검색해서 참조.

2. telnet localhost 143  해보면 원하는 메시지가 안나온다.

* OK Waiting for authentication process to respond


원래 기대하던 메시지는

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN]  Dovecot Ready

로그 메시지를 확인해보니.

Jun 20 05:46:01 auth: Fatal: Support not compiled in for passdb driver 'vpopmail'

Jun 20 05:46:01 master: Error: service(auth): command startup failed, throttling

패키지가 vpopmail 지원되도록 컴파일 되지 않은 듯 하다.

즉, 소스로 설치해야 할 듯 함. ㅜㅜ

yum groupinstall "Development Tools"


몇가지 imap 체크 방법


LOGIN [username] [password] LIST [flags] [folder separator] [search term] STATUS [mailbox] [flags] SELECT [mailbox] FETCH [first]:[last] flags FETCH [mail number] body[header] FETCH [mail number] body[text] LOGOUT


로그인시 혹시 이런 메시지가 나온다면, vpopmail 사용시

NO [AUTHENTICATIONFAILED] Authentication failed

/home/vpopmail/domains/도메인/vpasswd

이 파일의 권한을 체크해본다. ( vpopmail 으로 되어 있어야 한다) - 원인중 하나일 수 있다.

또는 vpasswd {메일계정}  으로 암호를 재설정 해준다.
(domains 를 복사한 경우 - 재설정이 필요한 듯 하다)

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
우분투 hardy 로 업그레이드 한 후에 이런 에러가 뜨기 시작했다.
현상은 아래와 같은 메세지가 나온다. 별다른 문제는 없지만, 종료하려고 하면 한참후(20~30초)에 종료팝업(재시작,종료,로그아웃 등의 메세지창)이 뜬다.
Internal error failed to initialize HAL
내부 오류.
HAL  기반(?) 으로 동작되는 프로그램에 이상이 있는 듯 하다.

https://bugs.launchpad.net/ubuntu/+source/dbus/+bug/81670
hardy 의 버그인듯 싶다.

/etc/rc2.d 의 부트스크립트들을 살펴보면.
S12dbus
S13gdm
S24hal
의 순서로 되어 있다. gdm 이 뜨기 전에 hal 이 먼저 실행되어야 하는데, 잘못되어 있다.

위 순서를 바꿔준다.  S13gdm 을 S30gdm 으로 바꿔준다.




반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
지난글에서 Centos 에서 빌드했었다.(http://blog.1day1.org/329)

우분투(9.04)에서 빌드를 해봤다. SPEC 파일의 몇몇 설정 부분을 수정해야 한다.


SPEC 의 어느 부분을 바꾸나?
1. /var/qmail 디렉토리 관련.

SPEC 에서 qmaild 계정을 만들때  useradd -m  옵션으로 /var/qmail 을 홈으로 지정해서 같이 생성하는데, alias 계정을 먼저 생성하기에 /var/qmail/alias  디렉토리를 생성할 수 없다는 에러가 발생한다.
그래서 qmaild 계정을 먼저 생성해준다.

또는 계정생성 앞부분에 /var/qmail 을 생성해준다.
if [ ! -d %{qmaildir} ]; then
        mkdir %{qmaildir}
fi

2. useradd 옵션 변경
우분투에서는 옵션이 -M 이 아니라, -m 이다.
useradd 의 버전차이인지 배포판 차이인지는 모르겠다

3. /sbin/nologin  을  /usr/sbin/nologin  으로 바꾼다 (배포판 차이)

4. {_initrddir} 위치 /etc/init.d 가 생성되지 않는다.
우분투는 /etc/init.d 에 위치한다. 
rpm --eval %{_initrddir}
으로 확인한다.

5. pushd , popd 명령이 안 먹나?
ubuntu 에서 /bin/sh 가 dash 라는 놈에 링크되어 있다.
pushd,popd 는 bash 에서 동작한다.  기존것을 지우고,
ln -s /bin/bash /bin/sh
으로 링크해준다.

chkconfig 대신에 update-rc.d 를 이용한다.
우분투는 update-rc.d 를 이용한다. (chkconfig 부분을 찾아서 다음처럼 바꾼다)
update-rc.d -f qmaild defaults
update-rc.d -f pop3d defaults

다 바꿨으니, SRPM 을 다시 만들어야지.
여기까지 변경후 다시 SRPM 을 생성한다.
rpmbuild --bs --with cdb SPEC/knetmail.spec

몇몇 패키지가 필요하다. 해당 패키지가 설치되어 있지 않으면 설치해준다.
apt-get install libssl-dev

모든 준비끝.
rpmbuild --rebuild --with cdb SRPMS/knetqmail-0.0.1-3.src.rpm

우분투에서도 쉽게 설치하자.


수정된 SPEC 파일이다.(참조) - 기존 spec 파일과 비교해서 직접 확인하기 바란다.



반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
윈도우7 64bit , IE8 을 환상의 조합이라고 할까?
인터넷 뱅킹, 온라인 쇼핑은 너무 어렵다.

자동으로 설치는 안되더라도 직접 설치해서 하게는 해줘야 하지 않겠어?
결제모듈 업체도 손을 놓은 상태인것 같아!  나몰라!

그래서, 내 컴퓨터에 매트릭스를 만들어 놓기로 했다.
가상머신으로 윈도우XP 의 매트릭스를 만든 것이다. 음~화화하...

그리고, 결제 버튼, active-x 들이 깔린다. 불안하긴 하지만, 뭐 괜찮아!
그래 되는 것 같아! 이제 결제 해봐야지.

헐!  재부팅.
음. 매트릭스(가상머신) 가 재부팅 되냐고?

아니 내 컴퓨터가...

매트릭스 버전이 낮아서 그런거야. 몇번 업그레이드 하면 완벽해 질거야!!

뭐니! 싫어!

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
그동안 여러시스템을 운영하면서, 하드디스크 장애를 수차례 겪어봤다.
물론 전문 운영업체도 아닌 개인입장에서의 경험이니 일반화 하는 것은 위험하다.

짧은 경험이지만, 하드디스크 장애중에 유독 파일시스템이 깨지거나 쓰기지연 등이 발생하는 경우는
var 디렉토리가 대부분이었다. var 디렉토리의 특성상 쓰기 작업이 많이 일어나기 때문일 것이다.

var 는 일을 많이 해!
시스템을 설치할때 / , /boot , /usr , /var  등은 거의 필수로 별도의 파티션으로 나누어 놓는다.
이중에서 디스크 자체의 인식오류등을 제외하면 거의다 var 디렉토리에 이상이 생겨서 문제가 발생한다.
파티션을 나누어 놓아서, 별도의 파티션으로 var 의 데이터를 옮기고, 바꿔서 마운트 해주면 해결되기도 한다. 그러나, 디스크에 배드섹터 같은 것이 발생했을 가능성이 많기 때문에 하드디스크를 바꿔주는 것이 좋다.

그렇다면 var 자체를 별도의 하드디스크로 지정해 놓는 것이 좋지 않을까?
용량도 그리 크지 않아도 된다. /var/log 정도만 따로 떼어 놓으면 수기가 정도면 충분하다.
그러나, log 도 대부분 쓰기 작업이니 따로 떼면 마찬가지 일듯 하다.(log 도 같이 있어야 겠다)
가능하다면 아예 메모리에 올려버리면 장애 발생률이 현저히 줄어들지 않을까?

깔끔한 해결책이 없을까?


SSD 가 답일까?
SSD 를 도입하기에는 비용도 문제지만, SSD 가 쓰기작업에 별로라는 이야기가 있어 좋은 해결책은 아닐듯 싶다. (MLC 니 SLC 니 그런 차이가 있다고 하던데...)
그렇지만, 서버용으로는 속도 빠른것으로 5G (최대 10G) 정도만 되어도 충분히 도입할 수 있으니, 그리 큰 비용이 들지 않겠지. 심각하게 고려해봐야 겠다.

저가형은 16G 부터 있는 것 같다. 가격은 약 10만원대.
한번 속는셈 치고 사볼까?

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
참 이상하다.

메인보드의 시간설정을 했는데, 얼마후에 시간이 바뀌어 버린다.
GMT-9 (GMT+9) 로  9시간이 차이가 나버린다.

난 분명 16 시로 맞췄는데, 시간은 9시가 되버린다.
CMOS 배터리가 없어서 그러면 공장초기화가 되어 버릴텐데, 그런게 아니다.
보드에서 시간이 고정되어 버리나? time 서버와 자동동기화되지는 않을텐데.
OS 에서 bios 까지 직접 건드리지는 않을 것이고.
Phoenix 바이오스 인데, 이놈의 특색인가? (제조시 국가별 설정이 그렇게 되어 있을까?)

암튼 이상한 현상을 목격하게 되는군.


우분투의 하드드라이브 커널에러가 나온다.
http://ubuntuforums.org/archive/index.php/t-1034762.html
여기에 나오는 에러인데

하드디스크에러다,
케이블 에러다,
커널옵션 ACPI 를 꺼라.
여러가지 이야기가 있다.

fsck 로 돌리긴 했는데, inode 가 깨져서 삭제했다.
일단 부팅이 되고, 관련 에러가 보이진 않지만, 좀 불안하네.

조만간 하드디스크를 교체해야 겠다.


시스템도 '계란을 한바구니에 담지 마라'  라는 것이 적용되는 것 같다.
위 에러난 시스템은  내부 개발용 이다.
내부 SCM , 이슈트래커, 공유공간, 개발서버(VM) 등이 구축되어 있다.
하드 에러가 나서 시스템을 교체할 생각을 하니, 고생이 훤하다.
가장 간단하게 하드카피로 하거나, 새로운 시스템으로 클린 설치를 해야할텐데 말이다.
클린설치하면 설정을 다시 해야 한단 말이지.

그나마 다행인것은 개발서버를 VM 으로 구축해놔서 카피만 하면 된다.
나중을 생각해서, SCM,이슈트래커 도 VM 내에 구축해 놓을까?
마스터서버 는 단순히 OS 와 VM서버 만 올리도록 말이지.
그렇게 분산시켜놓으면 최악의 상황에 대비하기 좋을테니 말이다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
YDN , Yahoo Developer Network 의 약자이다.
예전에 pipe 를 잠깐 써봤던 것이 생각난다.
아주 간단한 RSS 를 불러와서 최신글을 뿌려주는 간단한 pipe.

twitter @ydnkr 에서 본 http://ydnkrblog.com/blog/?p=582 YQL 소개 동영상.
여러 서비스들의 오픈API 를 아주 간단(?)하게 쓸 수 있다.
오호! 그래?  그럼 테스트를 안 해볼 수 없지.

http://developer.yahoo.com/yql/
YQL 은 지난 7월경에 나온듯 하다. 그동안 모르고 있었다.(다른곳에 한눈팔아 미처 못 봤겠지)
사실은 트위터 오픈API 를 이용해서 뭔가 만들려고 했었는데. 마침 YQL 이 눈에 띄었다.
(결과적으로 이런 행운이...)

YQL console 이라는 것이 있어, 직접 쿼리(?)를 날려 테스트 해볼 수 있다.
http://developer.yahoo.com/yql/console/

그 부분은 동영상에서도 소개가 되어 있으니 일단 넘어가고.
바로 트위터에 포스팅 하기를 실험해 봤다.(약간의 삽질기도 있다)

YQL 콘솔상에서는 다음과 같은 쿼리를 날린다.
이런 쿼리이다.
use 'http://yql.1day1.org/yql-twitter-status.xml' as table; insert into table (username,password,status) values('username','password','YQL-twitter test. 22');
자신의 트위터 아이디/암호/내용을 넣으면  트위터에 포스팅이 된다.


1. YOS , php SDK 를 이용하려다 실패.( & 보류 )
자세한 사항은 자세히 보기로...
(그에 대한 삽질기록은 http://t.1day1.org/post/177433640 )

2. YOS 가 curl 쓴다면, 난 직접 쓰지뭐.
YOS 가 curl 을 쓴다기에 직접 써보기로 했다.

file_get_contents , simplexml_load_file 같은 php 의 함수를 이용할 수도 있지만,
INSERT/UPDATE/DELETE 등의 쿼리는 POST 로 데이터를 넘겨야 하는 것 같다.
그래서 해당 함수들은 사용할수가 없다. 물론 socket 열어서 직접 post 로 넘기면 되지만.
우린 복잡한거 싫어하잖아요. 간단하게 해야 Cool 하죠. ^^

암튼 curl 을 쓰기로 했다.

우선 완성된 샘플 주소이다.(이 주소는 계속 유지 되지 않습니다.)
http://yql.1day1.org/yql-twitter.php


curl 을 이용한 방법의 핵심부분의 코드이다.

$query = "use 'http://yql.1day1.org/yql-twitter-status.xml' as table;
    insert into table (username,password,status)
    values('" . $_POST['username'] . "','" . $_POST['password'] . "','" . $_POST['status'] . "'); ";

$postData = 'q=' . urlencode($query). '&format=xml';
$yql_uri = 'http://query.yahooapis.com/v1/public/yql';


$options_add = array(
    CURLOPT_URL => $yql_uri  ,
    CURLOPT_REFERER => $referUrl ,
   
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => $postData ,
);

$ch = curl_init( );
curl_setopt_array( $ch, $options_add );

$content = curl_exec( $ch );

curl_close( $ch );
보내고자 하는 쿼리를 
http://query.yahooapis.com/v1/public/yql
으로
$postData = 'q=' . urlencode($query). '&format=xml';
post 형식으로 보내는 것이다.



YOS 가 된다면, 그게 좀더 편하겠지만, curl 로 직접 처리하는 것도 괜찮아 보인다.

YQL 의 매력적인 부분은 자신의 서비스를 오픈테이블(opentable?) 로 공개해서 사용하게 할 수 있다는 것이다. YQL 에서 쓸 수 있도록 따로 등록절차가 필요한지 모르겠지만, 서비스 개발자에게 상당한 자유도,편의성을 제공하는 것 같다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
큐브리드를 사용해보려고 테스트 중이다.

지난 8월에 2008 R2.0 버전이 새로 나왔다. 64bit 지원과 SRPM 지원이 눈에 띈다.
기존버전은 64bit 환경에 쓰기에는 애매한 부분이 있었다.
그래서 편법(?)으로 쓰기도 했다.(http://blog.1day1.org/312)

Centos(redhat 계열-rpm) 에서 빌드하는 것과 뭐가 다르지?

Centos 에서 cubrid SRPM 빌드를 해봤는데, 별다른 문제없이 빌드가 되었다.

우분투는 기본 패키지는 .deb 이지만,  rpm 도 설치가 가능하다.(특이한 설정이 아니라면)
rpm 을 사용하기 위한 패키지를 설치한다. ( 우분투 hardy 버전에서 테스트 했다)
apt-get install rpm

큐브리드도 SRPM 을 제공하기 때문에 우분투에서 빌드해보았다.

rpmbuild --rebuild 를 해보면 사전에 필요한 패키지들이 있다.
elfutils-libelf-devel
ncurses-devel
libstdc++-devel
glibc-devel
위 패키지 들에 해당하는 우분투 패키지는
apt-get install  libelf-dev libncurses-dev libstdc++6-dev libc6-dev
등에 해당한다.

rpm 방식은 체크하는 방식이 차이가 있어서 해당 패키지를 설치해도 계속 에러가 난다.
그래서 SRPM 의 spec 을 수정해서 다시 SRPM 을 만들기로 했다.

SRPM 패키지 우분투용으로 다시 만들자

먼저 srpm 을 설치한다
rpm -ivh CUBRID-8.2.0.1150-el5.src.rpm
우분투에서는  /usr/src/rpm 에 rpmbuild 관련 파일,디렉토리가 있다.
SRPM을 설치하면  rpm/SOURCES 에 관련소스가 생기고, rpm/SPECS 에 설정파일이 생긴다.

rpm/SPECS/cubrid.spec 을 열어서 
Requires:      ncurses
Requires:      libstdc++
BuildRequires: elfutils-libelf-devel
BuildRequires: ncurses-devel
BuildRequires: libstdc++-devel
BuildRequires: glibc-devel
위 부분을 주석처리한다.  각 줄의 앞에  # 을 붙여준다.

우분투에서는 rpmbuild 시 _sysconfdir 의 위치가 약간 다르게 나타난다.
rpm --eval %{_sysconfdir}
해보면  Centos 에서는 /etc 로 나오는데, 우분투는  /usr/etc  로 나온다.
SRPM 빌드 마지막 부분에 이 부분때문에 관련 파일을 찾을 수 없다는 에러가 나온다.
/usr/lib/rpm/x86_64-linux/macros  부분의
%_sysconfdir            %{_prefix}/etc
를 다음처럼 바꿔준다.
%_sysconfdir            /etc
SPEC 을 고친후에 SRPM 을 다시 만들어 준다.
rpmbuild -bs rpm/SPECS/cubrid.spec
rpm/SRPMS/ 에 다시 만든 SRPM 패키지가 생성된다.


이제 SRPM 빌드해도 되나?
준비가 끝났으니 본격적으로 우분투에서 SRPM 빌드를 한다.
rpmbuild --rebuild rpm/SRPMS/CUBRID-8.2.0.1150-el5.src.rpm
Centos 와 마찬가지로 JAVA_HOME 설정, ant 등의 빌드시 필요한 패키지를 설치한다.
apt-get install sun-java6-jdk ant

JAVA_HOME=/usr/lib/jvm/java-6-sun
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin


export JAVA_HOME
export PATH
make , gcc 등의 개발에 필요한 패키지도 설치되어 있어야한다.(대부분 이미 설치되어 있을듯)
apt-get install build-essential

최종적으로 rpm 을 만들었는데, 이런에러가.
rpm -Uvh CUBRID-8.2.0.1150-el5.x86_64.rpm
아! 나를 반기는 의존성 오류.
오류: Failed dependencies:
        /bin/bash is needed by CUBRID-8.2.0.1150-el5.x86_64
        /bin/csh is needed by CUBRID-8.2.0.1150-el5.x86_64
        /bin/sh is needed by CUBRID-8.2.0.1150-el5.x86_64
이미 bash , sh 등이 설치되어 있지만, rpm 에서 체크하는 방식이 달라서 그런듯 하다.
즉, 우분투에서는 설치된 패키지 정보가 rpm 에서 알 수 없어서 그런듯 하다.

일단 의존성 체크 없이 설치한다.
rpm -Uvh --nodeps CUBRID-8.2.0.1150-el5.x86_64.rpm


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
Cubrid 2008 R2.0 버전을 쎈토스에서 SRPM 빌드하는 법을 정리한다.

SRPM 빌드전에 뭐하지?

일단 빌드 전에 필요한 패키지들이 있다.
yum install rpm-build

당연히 빌드할 rpmbuild 패키지가 필요하다.(이미 깔려 있으면 생략)


0) 빌드에 필요한 패키지

yum install elfutils-libelf-devel ncurses-devel libstdc++-devel

1) javac (jdk) 필요. JDK 패키지 설치

yum install java-1.6.0-openjdk-devel

JAVA_HOME 설정 추가. (~/.bash_profile 에 넣어주거나, 콘솔상에서 입력해준다.)

JAVA_HOME=/usr/lib/jvm/java
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin


export JAVA_HOME

2) 다음은 ant

yum install ant

3) c++

yum install gcc-c++


본격적인 SRPM 빌드 작업


1) SRPM 다운로드

wget http://dev.naver.com/frs/download.php/500/CUBRID-8.2.0.1150-el5.src.rpm
wget http://dev.naver.com/frs/download.php/515/cubrid.spec

2) SRPM 빌드

rpmbuild —rebuild CUBRID-8.2.0.1150-el5.src.rpm

빌드가 완료되면  /usr/src/redhat/RPMS 에   설치할 rpm 파일이 생성된다.

설치는 보통에 하던식으로  rpm -Uvh ... .rpm   으로 하면 된다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
메일서버 qmail 을 설치/설정하는 것을 설명했다.(http://blog.1day1.org/329)

qmail + vpopmail(with cdb) 의 조합에서  vpopmail 콘솔 명령으로 관리할 수 있다.
그런데, 웹으로 관리하고 싶을때는 qmailadmin 을 설치한다.
http://www.inter7.com/index.php?page=qmailadmin

다운 받은 압축파일을 풀고, configure 설정을 해준다.
./configure --disable-ezmlmdir --disable-autoresponder-path
따로 ezmlm (메일링리스트) , autoresponder 가 필요없어서 위처럼 disable 옵션을 줬다.

설정이 끝나면 컴파일하고 설치한다.
make
make install-strip
Centos 의 apache 의 경우  /var/www/cgi-bin  , /var/www/html  등에 관련 파일들이 설치된다.

http://localhost/cgi-bin/qmailadmin  으로 접속을 하면 다음과 같은 화면이 나온다.
계정 생성, 삭제 등을 웹인터페이스 상에서 할 수 있다.


ps. 그런데, 간단한 설정만 되어 있어, 콘솔화면에서 명령내리는 것과 큰 차이는 없다.
  둘중 편한 것을 쓰면 될 듯 하다. 도메인에 대해 별도 관리자가 직접하도록 할때는 유용할 듯 하다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

메일서버에는 다양한 어플들이 있다.
흔히(?) 쓰는 sendmail 부터, 요즘 우분투쪽에서 밀고 있는 듯한 postfix.
지금은 어떤지 모르겠지만, 예전에는 sendmail 의 보안문제에 대해서 말이 많았다.

그렇다 보니 다른 대안을 찾아다니게 된다.
그 중에 유명한 메일서버가 qmail 이 아닐까 한다.
큐메일.
그런데, 문제가 컴파일 해서 사용해야 하기때문에 비경험자에게는 쉽지않은 난이도를 가지고 있었다.
그리고 환경에 따라 다양한 방법이 존재한다.(각종 패치는 더욱 많다)
다양한 요구를 만족시킬 수 있다는 장점은 다른 면에서 복잡성을 나타내기 때문에 어려워진다.

서버의 실제 계정을 활용하는 가장 기본적인 방법과 (qmail 기본)
파일로 관리하는 가상계정을 사용하는 방법(qmail + vpopmail)
DB 로 관리하는 가상계정을 사용하는 방법(qmail + vpopmail + mysql)

등 여러방법이 존재한다.
기타 자세한 정보는 http://qmail.kldp.net  를 참조한다.

지금 설명하려는 부분은 qmail + vpopmail 의 가상계정을 이용하는 방법이다.
지금까지 qmail 기본 설정을 사용했었다. 원래 sendmail 으로 운영했었는데(몇년전) 관리의 어려움이 있어 qmail 로 변경을 했다. 그당시 설정이 어려운부분이 많아서, 제일 간단한 방법이면서, 기존의 설정을 그대로 가져갈 수 있기 때문에 qmail 기본을 사용했었다.

그리고 몇년이 지난후 서버의 운영체제를 업그레이드 하다보니, 메일서버가 문제였다.
예전의 컴파일 하던 방식이 새운영체제에 맞지 않는 것이었다.
여러 방법을 찾아보다가 qmail + vpopmail 로 이전하는 것으로 결론을 내렸다.
그 사이에 쉽게 처리할 수 있는 방법이 나왔기 때문이다.

Centos 에서 SRPM 으로 빌드하는 방법이다.
http://qmail.kldp.net/phpbb/viewtopic.php?t=7887

1. 해당 SRPM 패키지를 받아서. 빌드한다.

rpmbuild --rebuild --with cdb knetqmail-0.0.1-3.src.rpm

이때 /var/qmail 디렉토리가 없다는 에러가 나온다. ( mkdir /var/qmail 로 만들어 준다.)
빌드된 rpm 파일은 /usr/src/redhat/RPMS/x86_64 에 위치한다. ( x86_64 또는 i386 )

2. 빌드된 rpm 패키지를 설치한다.
centos 는 기본 sendmail 이 설치가 되어 있어, 먼저 제거를 해준다.

rpm -e sendmail --nodeps
rpm -Uvh /usr/src/redhat/RPMS/x86_64/knetqmail-0.0.1-3.x86_64.rpm

(빌드된 rpm 파일명은 본인의 것을 확인한다.)

3. qmail 실행

/etc/init.d/qmaild start
/etc/init.d/pop3d start

위 처럼 실행하면 /service 에 다음처럼 링크가 된다.

ll /service/
합계 0
lrwxrwxrwx 1 root root 31  8월 27 17:46 qmail-pop3 -> /var/qmail/supervise/qmail-pop3
lrwxrwxrwx 1 root root 31  8월 27 17:45 qmail-send -> /var/qmail/supervise/qmail-send
lrwxrwxrwx 1 root root 32  8월 27 17:45 qmail-smtpd -> /var/qmail/supervise/qmail-smtpd

위와 같이 나오고, ps ax 에

# ps ax|grep qmail
27800 ?        S      0:00 supervise qmail-smtpd
27802 ?        S      0:00 supervise qmail-send
27803 ?        S      0:00 /usr/bin/tcpserver -vRHl0 -x/etc/tcp.smtp.cdb -c 100 -u 108 -g 106 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true
27804 ?        S      0:00 /usr/bin/multilog t s2500000 n10 /var/log/qmail/smtpd
27805 ?        S      0:00 qmail-send
27812 ?        S      0:00 /usr/bin/multilog s2500000 n10 /var/log/qmail/send
27813 ?        S      0:00 qmail-lspawn ./Maildir/
27815 ?        S      0:00 qmail-rspawn
27816 ?        S      0:00 qmail-clean
27824 ?        S      0:00 supervise qmail-pop3
27826 ?        S      0:00 /usr/bin/multilog n10 s2500000 /var/log/qmail/pop3
27827 ?        S      0:00 /usr/bin/tcpserver -vRHl0 -u 108 -g 106 0 pop3 /var/qmail/bin/qmail-popup mymail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir

위와 같이 관련 데몬이 뜨는 것을 볼 수 있다.

telnet localhost 25   (smtp)
telnet localhost 110   (pop3)

등으로 테스트를 해본다.

http://www.abuse.net/relay.html  나
http://people.kldp.org/~eunjea/relay-test.php

에서 릴레이 테스트도 해본다.

4. vpopmail 계정관리

vadddomain blahblah.com

도메인 추가.

vdeldomain blahblah.com

도메인 삭제. 조심하자. 아주 깨끗히 삭제한다.

vadduser foo@blahblah.com 

메일사용자 계정을 추가한다. 전체 메일주소를 쓴다.

vdeluser foo@blahblah.com

메일사용자 계정 삭제. 역시 조심. 그냥 삭제한다.

vpasswd foo@blahblah.com

암호변경. 암호는 바꾸고 써야지.

vaddaliasdomain newblah.com  blahblah.com

기존쓰던 도메인 계정그대로 다른 도메인으로도 메일을 같이 받고 싶을때.

자세한 사항은  http://ejlabs.net/txt/vpopmail  를 참조한다.


여기까지 기본적인 설치와 설정에 관한 부분이다.
예전에 qmail 써봤던 분들은 SRPM 빌드 방법을 해보면 정말 편해졌다는 것을 느낄 것이다.

다음에는 기존 /etc/passwd 의 계정을 vpopmail 가상계정으로 가져오는 방법과
그에 따라 간단하게 만든 실행 스크립트를 소개한다.


[추가] : yum update 시의 conflict 문제.

yum update 를 했을때. 

knetqmail ... conflicts with exim

이런식의 메세지가 나오면서 진행이 되지 않으면, 관련 패키지를 빼고 업데이트한다.

yum update -x exim -x postfix -x sendmail


위에서 sendmail 을 삭제할 때. rpm -e  보다는 yum remove  를 쓰는것이 좋을 듯 싶다.
(문제가 생길지는 모르겠다 - 테스트 필요.)

 

[추가-18-06-20] : centos6 에서 추가조치

1. rpmbuild 설치

yum install rpm-build

yum install gcc openssl-devel

# 기타 추가 패키지
yum install procmail

 

2. 진행도중 다음과 같은 에러.

chkuser.c:38:22: error: vpopmail.h: No such file or directory

chkuser.c:39:19: error: vauth.h: No such file or directory

chkuser.c:40:29: error: vpopmail_config.h: No such file or directory

chkuser.c: In function 'realrcpt':

chkuser.c:746: warning: comparison between pointer and integer

chkuser.c:875: warning: assignment makes pointer from integer without a cast

chkuser.c:885: warning: assignment makes pointer from integer without a cast

chkuser.c:896: error: dereferencing pointer to incomplete type

chkuser.c:896: error: 'BOUNCE_MAIL' undeclared (first use in this function)

chkuser.c:896: error: (Each undeclared identifier is reported only once

chkuser.c:896: error: for each function it appears in.)

chkuser.c:901: error: dereferencing pointer to incomplete type

chkuser.c:902: error: dereferencing pointer to incomplete type

chkuser.c:906: error: dereferencing pointer to incomplete type

make: *** [chkuser.o] Error 1

오류: /var/tmp/rpm-tmp.cZvvkq의 잘못된 종료 상황 (%build)

 

 

RPM 제작 오류:

    /var/tmp/rpm-tmp.cZvvkq의 잘못된 종료 상황 (%build)

 

 

3. 기존 srpm 버전이 centos 6 에 대응이 안된 듯 하다.  

knetqmail-0.0.1-3.src.rpm  대신에
knetqmail-0.0.1-5.src.rpm  버전을 구해서 해보니 rebuild 잘된다.

(생성된 rpm 위치는 /root/rpmbuild/RPMS/x86_64/  => 사용자 계정에 생성 )

4. 리빌드 후 설치 시 centos 6 - postfix 를 제거  ( centos 6 는 아마도 sendmail 이 아닌 postfix 가 기본인 듯 하다)

rpm -e postfix --nodeps

 

5. /etc/initab 의 /command/svscanboot 이 실행되지 않을 때

# cat /etc/init/svscan.conf 
start on runlevel [12345]
respawn
exec /command/svscanboot
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
CodeIgniter 일명 CI 는 php 프레임웍이다.
한국에서는 zend , cakephp 등의 프레임웍보다 덜 알려져 있다.
사실 php 프레임웍 자체가 널리 쓰이지 않고 있다.
그 상황에서 각 프레임웍의 인지도를 따지는 것은 무의미 하다고 본다.

그러던중 CI 한국 사용자 포럼이 만들어졌다.
http://codeigniter-kr.org/
php 프레임웍의 한국사용자 포럼은 cakephp 가 먼저 만들어졌지만, 지금의 거의 개점휴업상태이다.
(cakephp 포럼도 활성화 되길 바랍니다. cakephp.co.kr )

얼마전에 CI 기반의 포럼이 오픈하면서 지금의 꽤 활성화되고 있다.
운영자들이 CI 를 사용하다보니 그런것 같다. 하나둘씩 사용자가 늘어나고 있다.


자! 여러분들도 CI 의 가벼움에 반하시기 바랍니다. (가볍지만 강합니다.)

다른 프레임웍도 좋지만, php 의 강점인 간결함과 속도를 희생하는 문제가 있었습니다.
CI 는 php 의 강점을 살릴 수 있는 프레임웍이라고 생각합니다.

자! 클릭하세요. ^^   http://codeigniter-kr.org/


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
centos 쪽에 네임서버를 설치하려 한다.
우분투와 차이점이 있어 정리한다.

우분투는 /etc/bind/ 에 설정파일이 있다.
/etc/bind/named.conf.local 에 도메인 설정을 한다.
zone 파일은 /var/cache/bind 에 위치한다.


Centos 는 뭐가 다르지?
그런데, centos 는 조금 다르다.
가장 큰 차이점은 chroot 로 네임서버를 구동한다.
우분투쪽도 그런방식이 가능할 것으로 생각한다.(최신 배포판은 그런방식을 쓸지도,현 hardy)
그래서 chroot 의 root path 는 /var/named/chroot 가 된다.
네임서버 실행시 저 위치가 root 가 된다. 설정파일도 그 안에 위치한다.
/var/named/chroot/etc/named.caching-nameserver.conf
/var/named/chroot/etc/named.rfc1912.zone
도메인 설정은 named.rfc1912.zone 에 설정하면 된다.

그럼 zone 파일은 어디에 위치하나!
바로 /var/named 인데, chroot 상의 /var/named 이다.
/var/named/chroot/var/named
가 된다.

/etc/named.conf 등의 파일은 뭐지?
그냥 관리자가 관리하기 편하게 링크를 걸어준것 뿐이다.
해당 파일들을 삭제하고 재시작 해봐도 정상적으로 작동하는 것을 볼 수 있다.

ps 로 네임서버 프로세스를 확인해보면.
/usr/sbin/named -u named -c /etc/named.caching-nameserver.conf -t /var/named/chroot
chroot 로 시작하고 chroot 의 /etc/named.caching-nameserver.conf  설정을 불러들이는 것을 볼 수 있다.


기존 우분투 설정을 그대로 쓰고 싶어
우분투의 설정을 그대로 가져가 쓴다고 할때.
우분투의 named.conf.local 설정을
/var/named/chroot/etc/ 에 복사한후
/etc/named.conf.local 로 심볼릭 링크를 한다.
ln -s /var/named/chroot/etc/named.conf.local /etc/named.conf.local
/var/named/chroot/etc/named.caching-nameserver.conf  ( /etc/named.conf )
의 마지막 줄에. named.conf.local  설정을 불러오도록 다음 줄을 추가한다.
include "/etc/named.conf.local";

그리고 기존의 zone 파일들은
/var/named/chroot/var/named 에 복사해 주면 된다.

그리고 재시작하고, nslookup , dig 등으로 확인한다.



외부에서 도메인 질의가 안된다면
로컬에서는 되는데, 외부에서는 안된다면 다음의 사항을 체크한다.

1. 방화벽
iptable 로 53 번 포트를 열러줘야 한다.
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

2. 설정
설정파일의 기본이 localhost 를 기준으로 되어 있다.( named.caching-nameserver.conf )
    allow-query     { any; };

    match-clients      { any; };
    match-destinations { any; };
위처럼 localhost 를 any 로 바꿔준다.


nslookup 으로 질의확인
nslooup 으로 질의를 해서 네임서버 설정이 잘 되어 있는지 확인할 수 있다.
nslookup my.domain.com  localhost
처럼 질의를 했을때.
Non-authoritative answer:
Name:   my.domain.com
Address: 111.222.333.444
Non-authoritative  라는 메세지가 나오면 안된다.
해당 메세지가 없어야 일단 로컬설정이 제대로 된 것이다.


슬레이브 설정시 필요한 마스터 설정.
options 의 설정중에
allow-query 는  nslookup, dig 등을 이용한 일반 쿼리를 말한다.
슬레이브에서 마스터의 설정을 가져가려 하면
allow-transfer { slave-server_ip; };
의 설정을 해준다. (기본설정이 모두 허용인 듯 싶다. 필요한 서버만 허가를 하려면 필요하다)


ps. Centos 에서 bind-chroot 패키지를 설치하면 chroot 가 적용된다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
2009년 잔인한 그대여.

이땅의 버팀목을 하나씩 쓰러트리고
이땅을 어떻게 하려고
이땅에 남아있는 자를 어찌 하려고

그가 한일을 기억하며
그가 하고자 한일을 이어가며
그가 원했던 일이 이루어지는 날까지

잔인한 그대가 있어도
쓰러지지 않으리.
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
eclipse 를 쓰기 힘들어서,  kdevelop 으로 왔다.
kdevelop 이 c/c++ 개발툴이긴 한데, 다른 언어도 지원한다.
php 는 플러그인을 설치해서 사용한다. 패키지가 있으면 좋겠는데, 아쉽게도 컴파일해야 한다.

php 플러그인 빌드에 필요한 패키지
apt-get install kdebase-dev kdelibs5-dev kdebase-workspace-dev libqt4-dev build-essential subversion kdesdk-scripts
관련 소스를 받는다.(svn 이용)

kdevplatform 을 먼저 빌드한다.
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevplatform
cmake 로 makefile 을 생성한다.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
빌드,설치
make & make install

kdevelop 을 빌드한다.
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop
cmake 로 makefile 을 생성한다.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
빌드,설치
make & make install

php 플러그인을 빌드한다.
svn checkout svn://anonsvn.kde.org/home/kde/trunk/playground/devtools/kdevelop4-extra-plugins/php
마찬가지로 cmake 로 makefile 을 생성한다.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
역시 마찬가지로 이제 빌드,설치
make & make install



참조, kdevplatform 을 건너띄다가.


ps. 그런데, kdevelop 은 프로젝트 import 가 생각대로 되지 않는다.ㅜㅜ
 다시 eclipse 로 가야겠다. 이런.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
자세한 방법은 다음을 참조한다.

큐브리드가 이미 설치되어 있는 상태를 가정한다.

1. 큐브리드 소스 다운 받기(svn)
svn checkout --username anonsvn https://dev.naver.com/svn/cubrid/trunk/contrib/php
2. 관련 패키지 설치
 apx2 가 필요하다. 해당 명령이 있는지 확인하고 없으면 관련 패키지를 설치한다.
apt-get install apache2-prefork-dev
그리고 phpize 도 필요하다. 역시 마찬가지로 없으면
apt-get install php5-dev

3. 빌드하기
src 디렉토리에서
phpize5
./configure
make
를 각각 실행하면  modules 에 cubrid.so 가 생성된다.

modules/cubrid.so 와 cubrid_err.msg 를
extension 디렉토리에 복사한다.( /usr/lib/php5/20060613/ - 등의 extension 디렉토리를 확인)

4. php.ini 설정하기
php.ini 에 cubrid.so 를 등록한다.
extension=cubrid.so
cubrid.err_path="/usr/lib/php5/20060613"

phpinfo 등으로 정상적으로 cubrid.so 가 올라왔는지 확인한다.



ps. centos 의 경우 httpd-devel , php-devel 패키지가 필요하다.
yum install httpd-devel  php-devel

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
Centos 를 쓰는데, 유난히 다운로드 속도가 떨어진다.
그래서 빠른 곳으로 바꾸고자 한다.

저장소 위치는 /etc/yum.repos.d/CentOS-Base.repo  파일을 바꾼다.

기본설정이 mirrorlist 로 되어 있다. baseurl 은 주석처리 되어 있다.
반대로 mirrolist 는 주석처리하고, baseurl 에 빠른 곳을 직접 지정하면 된다.

기본 설정은
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
으로 되어 있다.  난  ftp.daum.net 으로 지정했다.
baseurl=http://ftp.daum.net/centos/$releasever/os/$basearch/
이런식으로 바꿔줬다.


base , updates 등의 다른 탭들도 바꿔준다. (addons, extras, centosplus )
base , updates 정도만 바꿔줘도 될 듯하다. 나머지는 추가적인 패키지들.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
Centos 에서 yum update 를 하면.  sqlite 관련 에러가 나오면서. 에러가 난다.
yum  File "/usr/bin/yum", line 29, in
...
...

 TypeError: unsubscriptable object.
해결 방법은
yum clean metadata
또는
yum clean all


또 다른 에러는
TypeError: rpmdb open failed
인 경우에는
rm -f /var/lib/rpm/__db*
rpm --rebuilddb
하라고 한다.


참조 :
sqlite 패키지를 이전 버전으로 다운그레이드(?) 하라는 방법도 있는데, 왠지 이건 아니다 싶다.
rpm -Uvh --oldpackage sqlite-3.2.8-1.i386.rpm


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
eclipse 로 utf-8 인코딩 된 파일을 열었는데, 제대로 표시를 해주지 못하는 경우가 있다.
저장이 잘 못된것인지? (다른 편집기에서는 제대로 연다)
다음 옵션을 바꿔준다.

그래 이런것은 별 문제 아니니 넘어가자.
그런데, 너무 느리다.

네가 하얗게 질려버리면 , 나도 질려버린다.
그래 잠시 안녕.

Good Bye eclipse.
난 , kdevelop 으로 간다.
(kdevelop 은 잘 될까? , 다시 eclipse 로 돌아오는 거 아닌지.)

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
오래된 윈도우용 웹캠이 있다. 윈도우XP 까지만 지원된다.(3개정도 있던가.)
더군다나 제조회사는 이미 망해버린 상태이다.(웹캠 회사는 온전한 곳이 별로 없다)
대기업표 웹캠도 오래된 것들은 윈XP 이상의 드라이버는 제공하지 않는다.
윈도우 비스타, 윈도우7 을 사용하고 있는 상황에서 쓸모없는 물건이 되버렸다.
아직 윈XP 가 많이 쓰이지만, 왠지 시한부 인생을 사는 것 같이 씁쓸하다.

혹시나 하는 마음에 리눅스(우분투)에 연결했다.
3개중 2개는 그냥 인식되네, 나머지 하나도 테스트해봐야 겠다.
치즈(cheese)를 실행시켜보니 잘 되는구나.

웹캠 감시 시스템을 적용해 볼까?
몇가지 찾아보니, motion 과 zoneminder 라는 것이 있다.

우선 zoneminder 를 해보기로 한다.
참조 : http://www.linuxscrew.com/2007/11/05/howto-home-video-security-with-zoneminder-and-ubuntu/


설치하기
설치는 우분투 패키지를 제공하기 때문에 쉽다.
apt-get install zoneminder apache2 php5-mysql libapache2-mod-php5 mysql-server ffmpeg
카메라 영상을 웹에서 보기위해 apache2 가 필요하다.
mysql-server 는  zoneminder 의 설정등을 저장하기 위해 mysql 을 사용하기 때문에 필요하다.
웹기반으로 카메라 영상 감시를 하기위한 어플이 php 로 제작되어 있다.(php5, mod-php5 필요)
ffmpeg 는 카메라 영상을 동영상으로 저장하기 위해 필요한 패키지 이다.

http://localhost/zm 으로 접속하기 위해 apache 설정을 한다.
ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
아파치를 재시작한다.


옵셥설정하기
http://localhost/zm   으로 접속해서 기본 옵션을 설정한다.(오른쪽 윗 부분에 있다.)
옵션중에 다른 부분은 바꿀 것은 없고. image 부분에서
두번째 항목  ZM_STREAM_METHOD  를  mpeg 에서  jpeg 로 바꾼다.(save 를 꼭 해준다)

그리고 zoneminder 를 재시작해준다.
/etc/init.d/zoneminder restart
여기까지 한후, 감시설정을 해준다.(웹캠이 여러개가 있다면, 여러개의 감시설정을 할 수 있다.)

감시설정하기
"Add New Monitor" 를 눌러 설정을 한다.

아무 이름이나 쓰고, Local 로 해준다. Function 은  원하는 것으로 선택한다.
잘못 이해했는지 모르겠지만, Modect 로 설정하면 Event 가 발생할 듯 싶은데, 잘 안된다.
그래서 Mocord 를 하니 제대로 Event 를 잡아내는 듯 하다.(Record 를 해야 하나?)
그리고 저장한다.

소스(Source) 부분에서  웹캠 디바이스를 지정한다.(보통 /dev/video0)
여러개 있다면,  video1 , video2  등의 디바이스가 생겼을 것이다.
capture width , height 는 320x240 이 적당할 듯 하다.
640x480 등은  커널 공유메모리를 늘려줘야 하나보다.(shmall , shmmax 관련)

감시화면보기
모니터 설정후에  설정한 이름을 클릭하면

다음처럼 웹캠 화면이 나온다.(지금은 어두워서, 밝은 것은 프라이버시 문제로...)

이벤트도 기록되는 것을 볼 수 있다.(어떤 상황에 이벤트가 생성되는지 정확한 기준은 아직 모르겠다)

주의사항 : /var/cache/zoneminder 에 영상이 저장된다. 충분한 공간을 확보해야 한다.


영상이 잘 안보인다면
감시화면을 띄웠을때 카메라 영상이 제대로 나오지 않는다면,
/var/log/messages 를 확인해본다.  퍼미션 에러가 나온다면.
아래처럼 권한을 조정해 본다.(zoneminder 재시작)
chmod 4755 /usr/bin/zmfix
그래도 안된다면, 아래처럼 video0 의 other 권한을 rwx 로 바꿔준다. (또는 666 ,777 )
chmod o+rwx /dev/video0


ps. 테스트에 사용된 웹캠이  Z-Star Microelectronics Corp. ZC0301 WebCam 이다.(lsusb)
저게  LED 조명이 있는데 꺼져있다. 켜는 방법을 아직 못찾겠다.(없나?)
그러고보니 윈도우에서도 조절을 못했던 것 같다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
이클립스를 저사양(?)에서 사용하다보니, 사용중 느려지는 현상이 있다.

바로 아래와 같은 기능.
단순히 "$" 입력했는데,  저 화면을 띄우기위해 엄청나게 버벅거린다.
거의 수십초(1분에 가까운)가량을 응답없음 이 나와 버린다.


시스템을 업그레이드 하던지, 이 기능을 끄고 쓸 수 밖에 없다.


Window -> Preferences -> PHP -> Editor -> Code Assist -> Auto Activation  항목의
Enable auto activation 이 체크되어 있는 것을 체크 해제한다.



ps. 지금까지 느리다는 생각은 별로 안했는데, eclipse 쓰면서 느끼게 되다니. 업그레이드 해야 하나!


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
이클립스를 깔고, 그냥 로컬에서 처리할려고 했는데, svn 을 쓰긴 써야 겠다.

그래서 자료를 찾아보니, 많이 편해졌다.
svn 도 기본으로 들어가 있는 것 같다(install 해야하지만)
기본 galileo 저장소에서 찾을 수 있다.(여기저기 찾아 헤매지 않아도 된다)

svn connect 라는 것만 깔아주면 된단다.(via http://rahxephon.tistory.com/1286 )

svn connect update 사이트
http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/
여기까지 eclipse 준비는 되었다.

svn 저장소를 만들면 된다.

svncreate create {my_repo} —fs-type fsfs
svn+ssh://user@svn.mydomain.com:2222/home/user/svn

뭐 이런식.

그 다음은 eclipse 에서 프로젝트 import 시키고 프로젝트를 즐기자.


처음에 하려던 방식은 eclipse + 로컬저장소 + vm 개발서버 
이런식으로 하려고 했는데, vm 개발서버에서 원격으로 로컬저장소로 virtualhost 설정이 안되네.
원래 그런가? 네트웍드라이브로 지정해서 하는 것이 문제인가?

그 다음에 조금 바꿔서  eclipse + 서브네트웍 저장소 + vm 개발서버
이렇게 처리할려고 했는데, 서버네트웍저장소 의 프로젝트를 eclipse 에서 가져오는데 너무 시간이 걸린다.
왜 그렇게 느린지 모르겠다. 1G 네트웍은 되어야 쓸만한가? 아니면 내 PC 성능이 딸려서 그런가?

최소로 eclipse 만 설치하려고 했는데, 어쩔 수 없이 로컬에 개발환경을 만들어야 바로 확인이 가능하겠다. 제일 마지막으로 하려던 것을 어쩔 수 없이 해야 되나?
그냥 svn 을 한김에 vm개발서버에서 svn checkout 해서 확인하도록 할까?

아니면 vm 개발서버를 윈도우기반이 아닌 리눅스 기반으로 바꿔보는 것도 좋겠다.
(아무튼 지금의 상황은 svn 이 해결방법은 아니다.ㅜㅜ)


vm 개발서버를 리눅스로 바꿨다. 이렇게 편한것을.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
http://eclipse.org

얼마전에 갈릴레오가 릴리스 되었다.
http://eclipse.org/galileo/


언제 부터인지 모르겠지만,  PHP Developers 패키지가 기본 등록되어 있다.
(예전에는 PDT 를 따로 설치했던것으로 기억한다.)

PHP 의 이클립스 패키지는 zend 것도 괜찮은 것으로 기억한다. (PDT 를 쓰는 것으로 기억)
웹어플 개발용인 Aptana 도 꽤 인상적이었다.

이클립스가 좀더 가벼웠으면 좋기는 하지만, 복잡한 프로젝트에서는 필수적이니, 써야지.

ps. 얼마전 써본 Kdevelop 도 괜찮던데(PHP 개발도 가능할려나? 되는 것 같군.)
   code block 도 괜찮아 보이고.

  kdevelop 관련 글 (via joinc wiki) :  제대로 써봐야 겠다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
티맥스 윈도 홈페이지가 바뀌었다.
예전 티맥스데이에 맞추어진 홈페이지가 티맥스 윈도 제품군 소개를 중심으로 바뀌었다.
http://www.tmaxwindow.co.kr/Products/TmaxWindow/Spec
티맥스 윈도 제품 특징과  사양이 인상적이다. ( 저대로만 나와준다면... )

과연 어떤 놈이 나올지 조금 기대가 된다.
10월? 11월에 과연 베타를 볼 수 있을까?

내가 리눅스를 쓰다보니, 다른 것은 둘째고. 이게 관심이 간다.
컴퓨팅 영역의 확장성 : Multiple OS 지원

Tmax Window는 MS Windows는 물론 UNIX, Linux를 모두 지원합니다.
- 복합 API 구성을 통해 특정 플랫폼에 종속되지 않는 플랫폼 독립성(Platform Independent)을 지니고 있습니다.
- Tmax Window 환경에서 Linux/Windows 기반 모든 어플리케이션 구동이 가능합니다.
나오기 전까지 이런저런 이야기는 하고 싶지 않다.

일단 손으로 만져보고, 내용을 뜯어봐야 재미있지.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,