Centos 의 기본패키지에 proftpd 가 빠져있다.
proftpd + mysql 설정을 위해 rpmforge 를 저장소로 추가한다.

# rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
# yum install proftpd proftpd-mysql
여기까지 설치 끝.


가상계정 설정은 다음을 참조 : http://blog.1day1.org/363


# 추가
Centos 에서 설정후에 이상한 부분이 있었다.
가상계정으로 로그인이 되지 않는 것이다.
AuthPAMConfig                   proftpd
AuthOrder                      mod_auth_pam.c* mod_auth_unix.c
위와 같이 설정되어 있는데, AuthOrder 를 주석처리했다.( # AuthOrder  ... ...)
위 설정은 가상계정을 확인하지 않고 그냥 넘어간다.

AuthPAMConfig 부분은 설정되어 있어야 정상작동한다.
우분투쪽의 설정에는 없는데, 정확한 이유는 확인해야 겠다.


그냥 이걸로 하면 끝.
# rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

# yum install ffmpeg

=== 이전 내용 =====================================
Centos 의 기본패키지에 ffmpeg 가 포함되어 있지 않다.
써드파티 저장소를 이용해야 한다.

/etc/yum.repos.d 에  임의의 파일을 만든다.
# vi /etc/yum.repos.d/CentOS-DAG.repo
내용은 다음을 넣는다.
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
ffmpeg 패키지를 설치한다.
# yum install ffmpeg
SDL , lame 등의 패키지가 같이 설치된다.
  SDL.i386 0:1.2.10-8.el5                  a52dec.i386 0:0.7.4-8.el5.rf      amrnb.i386 0:7.0.0.2-1.el5.rf
  amrwb.i386 0:7.0.0.3-1.el5.rf            cppunit.i386 0:1.12.0-3.el5.rf    dirac.i386 0:1.0.2-1.el5.rf
  faac.i386 0:1.26-1.el5.rf                faad2.i386 0:2.7-1.el5.rf         ffmpeg-libpostproc.i386 0:0.5-3.el5.rf
  giflib.i386 0:4.1.3-7.1.el5_3.1          imlib2.i386 0:1.4.0-1.el5.rf      lame.i386 0:3.98.2-1.el5.rf
  libid3tag.i386 0:0.15.1b-3.el5.rf        libogg.i386 2:1.1.3-3.el5         libtheora.i386 0:1.0alpha7-1
  x264.i386 0:0.0.0-0.4.20090708.el5.rf

설치중 이런 메세지가 나오면..



ffmpeg 를 사용하는 용도는 동영상사이트까지는 아니고, 사용자가 올리는 flv 파일에서 이미지를 추출하는 간단한 용도이다. 그래서 위 패키지(ffmpeg) 설치만으로 충분하다.

그외에 avi 를 flv 로 변환한다거나 음성을 추출한다거나 하는 경우 추가로 필요한 패키지를 설치해야 할 것이다.( 이곳을 참조한다 : http://www.mysql-apache-php.com/ffmpeg-install.htm )


centos 에서 아파치모듈을 컴파일 하는데, 다음과 같은 에러가 난다.
cannot open /httpd/build/config_vars.mk: 그런 파일이나 디렉토리가 없음 at /usr/sbin/apxs line 201.
apxs 는 perl 로 작성되어 있다. 코드를 보다보니.
pkg-config --variable=libdir apr-1
이 부분에서 아무 리턴값이 없는 것이다. (정상은 /usr/lib64 로 나와야 한다)

yum list apr*
으로 확인해보니,  apr-devel  이 i386 버전으로 설치되어 있고, x64 용으로는 설치가 되어 있지 않았다.
그래서
yum install apr-devel
으로 x64 버전도 설치했다.

apxs -ic mod_url.c
apxs -ic mod_bw.c
모두 정상적으로 컴파일 된다.

Centos 에서 삼바를 설정하는데, 기존에 쓰는 우분투 설정과 같게 했는데도 다음과 같은 에러가 난다.
smbd[9726]: [2009/10/10 08:33:24, 0] smbd/service.c:make_connection_snum(1003)
smbd[9726]:   '/user/data' does not exist or permission denied when connecting to [httpd] Error was 허가 거부됨
삼바(/etc/samba/smb.conf) 설정을 이것저것 바꿔보는데도 별다른 진척이 없었다.

처음에는  접속이 안되길래 확인해 보니 /etc/sysconfig/iptables 의 방화벽이 막혀 있었다.
(해당포트를 열거나 방화벽 설정을 해제하면 되겠다. 개발서버용이라 방화벽을 껐다.)

혹시나 해서 Selinux 를 살펴봤다. Selinux 를 끄고 다시 해보니, 정상적이었다.
/etc/selinux/config 의
SELINUX=enforcing 으로 된것을  SELINUX=disabled  로 바꿔줬다.

SELINUX 를 제대로 활용하는 방법은 없나?
찾아보면 Centos 의 제일 먼저 나오는 팁이 Selinux 를 끄세요 라니...


# 다음 자료를 보고 적용해봐야 겠다.
http://wiki.centos.org/HowTos/SELinux
http://www.linuxtopia.org/online_books/centos_linux_guides/centos_selinux_guide/index.html
http://centos.pe.kr/owiki/index.php?url=centos&no=11


Centos 5 는 사용하기 편한 배포판중 하나다.(개인적으로 우분투가 좋다)
yum 으로 패키지 관리하는 것도 우분투(데비안)의 apt-get  부럽지 않을만큼 편하다.

그런데, centos5 가 나온지 꽤 되어서 인지 버전이 낮은 프로그램이 있다.
그중 하나가 php 인데, 공식지원은 5.1.6 버전이다.

5.2.x 버전을 사용하기 위해서는 비공식 저장소를 이용해야 한다.

http://wiki.centos.org/AdditionalResources/Repositories
를 보면 추가 가능한 저장소들이 있다. 이중 CentOS-Testing 를 이용하자.
# cd /etc/yum.repos.d
# wget http://dev.centos.org/centos/5/CentOS-Testing.repo
테스팅 저장소를 등록한다.

php 업데이트 방법은
# yum --enablerepo=c5-testing update php
혹시 php-mcrypt 같은 추가로 설치한 확장이 같이 업데이트 되지 않으면 별도로 업데이트해준다.
# yum --enablerepo=c5-testing update php-mcrypt


참조 : SRPM 으로 하는 방법
http://echodittolabs.org/blog/2009/05/all-i-want-php-52-centosrhel
TAG 5.2.x, CentOS, php
cafe24 가상서버호스팅을 사용중이다. 꽤 좋은 성능을 보여줘서 만족하고 있다.
가상호스팅의 특성(?)상 하드 용량이 부족하다. 그렇다 보니 몇메가도 아쉽게 된다.

cafe24 는 centos5 를 사용한다.
쓸데없는 패키지를 삭제해서 용량을 줄였다.
대충살펴보니 1기가 이상줄일 수 있었다.
yum remove xorg-x11*
yum remove evolution*
yum remove openoffice.org*
yum remove gnome*
다음과 같은 패키지들이다. 주로 X윈도 관련 패키지 들이다.
더 세세하게 찾아서 없애면 더 줄일 수 있겠지만, 일단 이정도로 만족.


ps. centos5 기본용량이 원래 큰가? 1기가 내외로 안되겠니?


# 지우기전
 18664164   4120760  13580028  24% /
# 지운후
 18664164   2856220  14844568  17% /

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   으로 하면 된다.


Centos 에서 DNS(네임서버) 설정

알아둘일 2009/08/19 08:46 Posted 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 가 적용된다.

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 정도만 바꿔줘도 될 듯하다. 나머지는 추가적인 패키지들.

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