|
|
from Linux
2009/10/25 16:02
이 글은 소스 설치 환경에서 아파치 + SVN 을 연동 하는 방법입니다. subversion 아파치 모듈을 설치하기 전에 필요한 의존성 neon, SQLite 을 설치 합니다. - neon 설치 (xml2 와 xml Parser 인 expat 라이브러리가 미리 설치 되어 있어야 합니다. 설치 안되신 분은 그냥 Skip 하셔도..) http://www.webdav.org/neon/
[root@ruo91 ~]# cd /usr/local/src [root@ruo91 ~]# wget http://www.webdav.org/neon/neon-0.29.0.tar.gz [root@ruo91 ~]# tar xzvf neon-0.29.0.tar.gz [root@ruo91 ~]# cd neon-0.29.0 [root@ruo91 ~]# ./configure --with-libxml2 --with-expat [root@ruo91 ~]# make && make install
- SQLite 설치 http://www.sqlite.org/download.html
[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://www.sqlite.org/sqlite-3.6.19.tar.gz
[root@ruo91 ~]# tar xzvf sqlite-3.6.19.tar.gz
[root@ruo91 ~]# cd sqlite-3.6.19
[root@ruo91 ~]# ./configure --disable-tcl
[root@ruo91 ~]# make && make install
- subversion 모듈 설치 아파치에서 svn 을 연동하기 위한 모듈을 아래 사이트에서 다운로드 받습니다. http://subversion.tigris.org
[root@ruo91 ~]# cd /usr/local/src [root@ruo91 ~]# wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.bz2 [root@ruo91 ~]# tar xjvf subversion-1.6.6.tar.bz2 [root@ruo91 ~]# cd subversion-1.6.6 [root@ruo91 ~]# ./configure \ --with-neon=/usr/local --with-sqlite=/usr/local --with-zlib=/usr/local \ --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 \ --without-jdk --without-berkeley-db [root@ruo91 ~]# make && make install
- 아파치 설정 및 테스트 설치가 완료되면 자동으로 httpd.conf 설정 파일에 해당 모듈이 붙습니다. [root@ruo91 ~]# cat /usr/local/apache2/conf/httpd.conf | grep svn LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
svn 저장소를 웹으로 보기 위해선 아파치의 httpd.conf 설정 파일에 아래 내용을 추가 해줘야 합니다. (필자는 인증 된 사용자만 허용 해주기 위해 아래와 같이 설정 해줬습니다.) # SVN <Location /svn> DAV svn # SVN 저장소 디렉토리 SVNParentPath /home/svn # 인증 타입 AuthType Basic # 인증 설명 이름 AuthName "Subversion repository" # 인증 사용자 파일 지정 AuthUserFile /usr/local/apache2/conf/auth_user Require valid-user </Location>
아파치의 htpasswd 바이너리 파일을 이용하여 인증 사용자 추가를 합니다. [root@ruo91 ~]# /usr/local/apache2/bin/htpasswd -cm /usr/local/apache2/conf/auth_user ruo91 New password: Re-type new password: Adding password for user ruo91
[root@ruo91 ~]# cat /usr/local/apache2/conf/auth_user ruo91:$apr1$WiriXXvq$zvXNMXMgUaiSZ3KuwLPno0
여러 사용자가 있을때 해당 사용자만 추가 해주고 싶을 때에는 -c 옵션을 제거하고 만들어 주시면 됩니다. [root@ruo91 ~]# /usr/local/apache2/bin/htpasswd -m /usr/local/apache2/conf/auth_user ruo911 New password: Re-type new password: Adding password for user ruo911
적용을 위해서 아파치 재시작을 합니다. [root@ruo91 ~]# /usr/local/apache2/bin/apachectl restart
SVN 모듈이 잘 올라갔는지 PHP 정보를 확인 합니다. [root@ruo91 ~]# echo '<?php phpinfo(); ?>' > /usr/local/apache2/htdocs/phpinfo.php
이제 웹페이지에서 SVN 이 정상 작동 하는지 확인 합니다. http://서버IP/svn/저장소이름
http://192.168.0.28/svn/repos
ruo91
2009/10/25 16:02
2009/10/25 16:02
Trackback Address >> http://www.yongbok.net/blog/trackback/90
from Linux
2009/10/24 15:06
SVN(subversion)?SVN 은 버전 관리 시스템이며 CVS 의 단점을 보안 하기위해 만들어진 시스템입니다. SVN 을 기준으로 업데이트하고 서버에 업로드하는 형식으로 사용자가 언제 어떤 부분을 수정을 했는지에 대한 모든 소스의 로그가 남고 간단히 예전 버전으로 돌리기도 가능합니다. 더 자세한건 위키피디아를 참고 하세요. http://ko.wikipedia.org/wiki/서브버전
SVN 구조대략.. 아래 처럼 된다는 거만 알고 있으면 될듯 합니다. 1. SVN 설치SVN 설치는 yum 으로 설치를 진행 합니다. [root@ruo91 ~]# yum install -y subversion
2. SVN 사용자 추가SVN 을 사용할 사용자를 추가 합니다. [root@ruo91 ~]# adduser svn [root@ruo91 ~]# passwd svn Changing password for user svn. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
3. 저장소(Repository) 만들기svnadmin 으로 해당 저장소를 만들어 줍니다. [root@ruo91 ~]# svnadmin create --fs-type fsfs /home/svn/repos
repos 디렉토리 사용자/그룹 위임 설정을 합니다. [root@ruo91 ~]# chown -R svn:svn /home/svn/repos
[root@ruo91 ~]# ls -al /home/svn/repos 합계 36 drwxr-xr-x 7 svn svn 4096 10월 24 05:35 . drwx------ 4 svn svn 4096 10월 24 05:35 .. -rw-r--r-- 1 svn svn 229 10월 24 05:35 README.txt drwxr-xr-x 2 svn svn 4096 10월 24 05:35 conf drwxr-xr-x 2 svn svn 4096 10월 24 05:35 dav drwxr-sr-x 5 svn svn 4096 10월 24 05:35 db -r--r--r-- 1 svn svn 2 10월 24 05:35 format drwxr-xr-x 2 svn svn 4096 10월 24 05:35 hooks drwxr-xr-x 2 svn svn 4096 10월 24 05:35 locks
4. SVN 설정 파일 추가/수정
기본 설정
[root@ruo91 ~]# vi /home/svn/repos/conf/svnserve.conf
[general] # 익명 사용자 읽기 사용 여부 anon-access = read # 인증 사용자 쓰기 사용 여부 auth-access = write # 인증에 사용될 패스워드 설정 파일 password-db = passwd
사용자/비밀번호 설정 [root@ruo91 ~]# vi /home/svn/repos/conf/passwd
[users] # svn 사용자의 비밀번호를 지정 # 사용자ID = 비밀번호 이런식.. svn = 123456
5. SVN 시작[root@ruo91 ~]# svnserve -d -r /home/svn/
정상작동 확인 [root@ruo91 ~]# ps -aux | grep svnserv root 2233 0.0 0.0 11592 796 ? Ss 05:55 0:00 svnserve -d -r /home/svn/
[root@ruo91 ~]# netstat -ant | grep 3690 tcp 0 0 :::3690 :::* LISTEN
시스템 부팅시 자동으로 SVN 이 시작 되게 하려면 아래와 같이 합니다. yum 으로 설치시에는 /etc/rc.d/init.d/subversion 실행 스크립트가 생성되지 않으므로 수동으로 추가 해줘야 합니다. subversion 스크립트 작성 [root@ruo91 ~]# vi /etc/rc.d/init.d/subversion
#!/bin/bash . /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
RETVAL=0 prog="svnserve" desc="Subversion server" OPTIONS="--threads --root /home/svn"
start() { echo -n $"Starting $desc ($prog): " daemon $prog -d $OPTIONS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog echo }
stop() { echo -n $"Shutting down $desc ($prog): " killproc $prog RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL }
case "$1" in start) start ;; stop) stop ;; restart) stop start RETVAL=$? ;; condrestart) [ -e /var/lock/subsys/$prog ] && restart RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart}" RETVAL=1 esac
exit $RETVAL EOF
시스템 부팅시 자동으로 시작 [root@ruo91 ~]# chkconfig subversion on
6. SVN 기본 디렉토리 만들기소스 코드를 관리하기 위해서는 trunk , branches, tags 를 만들어 줘야 합니다. 필자는 Bash 쉘 사용자이므로 자신의 홈 디렉토리의 .bash_profile 을 아래와 같이 export 걸어 줬습니다. [root@ruo91 ~]# vi ~/.bash_profile
SVN_EDITOR=/usr/bin/vim export SVN_EDITOR
export 를 걸지 않으면 아래와 같이 나옵니다. [root@ruo91 ~]# svn mkdir svn://192.168.0.28/repos/trunk svn: 로그 메시지를 구하기 위해 외부 프로그램을 사용할 수 없습니다. SVN_EDITOR 환경변수를 설정하시거나 --message (-m) 또는 --file (-F) 옵션을 사용하세요. svn: 환경변수 SVN_EDITOR, VISUAL, EDITOR 중 하나는 설정하거나, 'editor-cmd' 를 구성화일에 명시해야합니다.
아래처럼 trunk 디렉토리를 만들어 주면 vim 에디터가 자동으로 나오게 됩니다. [root@ruo91 ~]# svn mkdir svn://서버IP/repos/trunk
[root@ruo91 ~]# svn mkdir svn://192.168.0.28/repos/trunk
--이 줄 이하는 자동으로 제거됩니다--
A svn://192.168.0.28/repos/trunk ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "svn-commit.tmp" 4L, 75C 1,0-1 모두
이때 :q 를 눌러 에디터에서 빠져 나옵니다. :q
C 를 눌러 나옵니다. 로그 메시지가 변경되지 않았거나 지정되지 않았습니다 취소(A), 계속(C), 수정(E) C
인증 영역을 사용하기 위해 root 사용자의 암호와 svn 사용자의 암호를 입력 해줍니다. (암호는 보안상 보이지 않음) 인증 영역(realm): <svn://192.168.0.28:3690> dbd294f2-a62a-422d-a146-2ff0ab99c42c 'root'의 암호: 인증 영역(realm): <svn://192.168.0.28:3690> dbd294f2-a62a-422d-a146-2ff0ab99c42c 사용자명:svn 'svn'의 암호:
커밋된 리비전 1.
branches 디렉토리 만들기 (trunk 와 반복..) [root@ruo91 ~]# svn mkdir svn://192.168.0.28/repos/branches
로그 메시지가 변경되지 않았거나 지정되지 않았습니다 취소(A), 계속(C), 수정(E) C
커밋된 리비전 2.
tags 디렉토리 만들기 [root@ruo91 ~]# svn mkdir svn://192.168.0.28/repos/tags
로그 메시지가 변경되지 않았거나 지정되지 않았습니다
취소(A), 계속(C), 수정(E)
C
커밋된 리비전 3.
위에서 만든 디렉토리를 확인 합니다. [root@ruo91 ~]# svn list svn://192.168.0.28/repos branches/ tags/ trunk/
7. 저장소 사용필자는 원격 작업을 윈도우에서 하기 때문에 윈도우용 SVN 클라이언트(TortoiseSVN)를 이용했습니다. 다운로드는 http://tortoisesvn.net/ 에서 받으시고 설치 하세요. TortoiseSVN 설치가 완료 되면 윈도우의 빈공간 오른쪽 마우스를 누르게 되면 아래와 같이 SVN Checkout 가 보입니다. 이것을 눌러줍니다. 체크아웃 설정창이 보이며 Repository URL 은 SVN 서버를 입력 해줍니다. 그 아래 체크아웃 후 저장 될 디렉토리를 원하는 곳으로 입력 해줍니다.
체크아웃 후 지정 된 디렉토리에 저장이 되었습니다.
이후 trunk 에 몇가지 파일을 만들어 줍니다.
빈공간에 마우스 우클릭하여 SVN Commit 을 눌러 줍니다.
Commit 화면이며 파일을 모두 체크 후 확인을 눌러 줍니다.
사용자 인증 창이 뜨며 SVN 서버에서 설정한 svn 사용자의 비밀번호를 입력 해줍니다.
인증 성공 후 Commit 이 완료 됩니다. 서버에서 체크아웃 해보면 Commit 이 정상적으로 완료 되었음을 볼수 있습니다.
[root@ruo91 ~]# svn checkout svn://192.168.0.28/repos repos A repos/trunk A repos/trunk/Hello.c A repos/trunk/Hello.tar A repos/branches A repos/tags 체크아웃된 리비전 4.
ruo91
2009/10/24 15:06
2009/10/24 15:06
Trackback Address >> http://www.yongbok.net/blog/trackback/89
from Linux
2009/10/22 11:00
리눅스와 윈도우 사이에서 파일을 서로 공유 하고자 할때 많이 사용합니다. 필자는 CentOS 5.3 에서 설치를 진행 하였습니다. 1. 삼바 설치yum 으로 설치를 진행 하며 총 4가지 패키지인 samba, client, common, swat 가 설치 되어야 합니다. [root@ruo91 ~]# yum -y install samba samba-client samba-common samba-swat
2. 삼바 사용자 추가 및 디렉토리 권한 설정삼바 로그인을 위한 사용자를 추가 합니다. [root@ruo91 ~]# useradd ruo91 [root@ruo91 ~]# passwd ruo91 Changing password for user ruo91. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
[root@ruo91 ~]# pdbedit -a ruo91 new password: retype new password: Unix username: ruo91 NT username: Account Flags: [U ] User SID: S-1-5-21-3429561750-263143194-684328599-2004 Primary Group SID: S-1-5-21-3429561750-263143194-684328599-513 Full Name: Home Directory: \\ruo91\ruo91 HomeDir Drive: Logon Script: Profile Path: \\ruo91\ruo91\profile Domain: RUO91 Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 목, 22 10월 2009 00:01:05 KST Password can change: 목, 22 10월 2009 00:01:05 KST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
공유할 samba 하위 디렉토리 생성 [root@ruo91 ~]# mkdir /home/ruo91/samba [root@ruo91 ~]# chown -R ruo91:ruo91 /home/ruo91/samba
3. 삼바 설정 파일 추가/수정[root@ruo91 ~]# vi /etc/samba/smb.conf
[global] # 작업 그룹 설정입니다. # 윈도우에서는 기본값으로 "WORKGROUP" 으로 # 설정 되어 있으므로 그대로 입력 해줍니다. workgroup = WORKGROUP # # 서버 제목입니다. server string = CentOS-5.3 Samba Server # # 윈도우와 리눅스의 문자셋 설정 # 이렇게 해두면 한글이 안깨집니다. dos charset = cp949
unix charset = cp949
[homes] # 윈도우즈 탐색기의 "설명" 란에 표시될 내용입니다. comment = Home Directories # # 공유할 디렉토리 설정 입니다. path = /home/ruo91/samba # # 디렉토리 보기 여부입니다. # no 로 설정 했다고 해서 접근이 불가한 것은 아닙니다. browseable = no # # 쓰기 가능 여부입니다. writable = yes # # 생성 되는 파일이나 디렉토리의 퍼미션 설정 create mask = 0777
directory mask = 0777
[public] # 익명 사용자의 공유 폴더 설정입니다. # # 윈도우즈 탐색기의 "설명" 란에 표시될 내용입니다. comment = Public Stuff # 공유할 디렉토리 설정 부분이며 퍼미션을 755 또는 777을 설정 해주셔야 합니다. path = /home/ruo91/public # 익명사용자의 접근 허용 여부입니다. public = yes # 쓰기 가능 여부입니다. writable = yes
4. SELinux 설정 변경 CentOS 에서는 기본적으로 samba 가 사용되지 않도록 SELinux 에 설정 되어 있는데 이것을 변경 해주셔야 합니다. SELinux 를 비활성화 합니다. [root@ruo91 ~]# system-config-securitylevel 허용할 서비스에 삼바(Samba) 를 체크 해준 후 확인 하고 빠져 나옵니다.
5. 삼바 시작위에서 설정한 것들을 적용을 위해 삼바 데몬을 시작 합니다. [root@ruo91 ~]# service smb start SMB서비스를 시작 중: [ OK ] NMB서비스를 시작 중: [ OK ]
재부팅시 자동으로 실행 되기 위해 아래 처럼 해줍니다. [root@ruo91 ~]# chkconfig smb on
또는 /etc/rc.local 에 추가 [root@ruo91 ~]# echo '/etc/init.d/smb start' >> /etc/rc.local
[root@ruo91 ~]# cat /etc/rc.local | grep smb /etc/init.d/smb start
6. 삼바 테스트윈도우에서 삼바 서버로 접속 하기 위해 시작 > 실행에 아래 명령어를 입력 합니다. (필자의 가상 CentOS 서버 아이피 주소는 192.168.0.28 입니다.) \\삼바서버IP
\\192.168.0.28
삼바 환경 설정 파일에서 설정한 디렉토리들이 보입니다.
ruo91 디렉토리에 들어가서 파일이 있는걸 볼수 있습니다.
자 그렇다면 테스트로 윈도우에서 텍스트 문서를 하나 만들어 보겠습니다.
서버에서 확인 해보면 한글이 깨지지 않았으며 정상적으로 생성 되어진 걸 볼수 있습니다.
[root@ruo91 ~]# ls -al /home/ruo91/samba 합계 20 drwxr-xr-x 3 ruo91 ruo91 4096 10월 22 00:14 . drwxr-xr-x 4 root root 4096 10월 21 23:41 .. drwxr-xr-x 2 ruo91 ruo91 4096 10월 21 23:38 hello -rw-r--r-- 1 ruo91 ruo91 81 10월 21 23:39 hello.c -rw-r--r-- 1 ruo91 ruo91 228 10월 21 23:40 hello.tar.gz -rwxr--r-- 1 ruo91 ruo91 0 10월 22 00:08 윈도우에서 만들어 봐쪄.txt
참고http://wopose.blogspot.com/2009/10/vmware-centos-samba.html
ruo91
2009/10/22 11:00
2009/10/22 11:00
Trackback Address >> http://www.yongbok.net/blog/trackback/88
from Linux
2009/10/21 22:25
CVS (Concurrent Versions System) 는 동시 버전 관리 시스템이며 보통 소프트웨어 프로젝트를 진행할 때,
파일로 이뤄진 모든 작업과 모든 변화를 추적하고, 여러 개발자(지역적으로 떨어진)가 협력하여 작업할 수 있게 합니다. 더 자세한건.. 위키피디아를 참고 하세요 .
http://ko.wikipedia.org/wiki/CVS
1. CVS 설치cvs 가 설치 되어 있는지 확인하고 아래 처럼 찾을수 없다면 cvs 를 설치 합니다. [root@ruo91 ~]# cvs -bash: cvs: command not found
[root@ruo91 ~]# yum -y install cvs
2. CVS 사용자, 그룹 생성cvs 를 사용할 유저와 그룹을 생성 해주고 저장소 디렉토리에 유저, 그룹, 디렉토리 권한 등을 부여 해줘야 합니다. [root@ruo91 ~]# groupadd cvs [root@ruo91 ~]# useradd -g cvs -s /sbin/nologin cvs [root@ruo91 ~]# chown -R cvs.cvs /home/cvs [root@ruo91 ~]# chmod -R 770 /home/cvs
cvs -d 를 사용하여 지정된 디렉토리에 CVSROOT 라는 하위 디렉토리가 생성 해줍니다. [root@ruo91 ~]# mkdir /home/cvs/ruo91 [root@ruo91 ~]# cvs -d /home/cvs/ruo91 init [root@ruo91 ~]# chown -R cvs.cvs /home/cvs/ruo91 [root@ruo91 ~]# chmod -R 770 /home/cvs/ruo91
[root@ruo91 ~]# ls -al /home/cvs/ruo91 | grep CVSROOT drwxrwxr-x 3 root root 4096 10월 21 20:58 CVSROOT
아파치의 htpasswd 바이너리 파일을 이용하여 crypt 알고리즘으로 생성 된 비밀번호를 생성 해줍니다. [root@ruo91 ~]# /usr/local/apache2/bin/htpasswd -nb 사용자ID 비밀번호
[root@ruo91 ~]# /usr/local/apache2/bin/htpasswd -nb ruo91 123456 ruo91:tblgIWIzLSVqE
crypt 알고리즘으로 생성 된 비밀번호를 CVSROOT 디렉토리에서 passwd 파일을 생성 후 아래 처럼 내용을 추가 해줍니다. [root@ruo91 ~]# echo 'ruo91:tblgIWIzLSVqE:cvs' >> /home/cvs/ruo91/CVSROOT/passwd
[root@ruo91 ~]# cat /home/cvs/ruo91/CVSROOT/passwd ruo91:tblgIWIzLSVqE:cvs
ruo91:tblgIWIzLSVqE:cvs 를 자세히 보면 3개의 필드별로 :(세미콜론)을 사용하여 구분 하며 첫번째는 사용자 ID, 두번째는 아파치의 htpasswd 의 crypt 알고리즘으로 생성 된 비밀번호, 세번째는 cvs 사용자의 권한으로 접근의 의미 입니다. 사용자ID:암호화 된 비밀번호:cvs 사용자 권한으로 접근
3. CVS 서버 실행저장소 디렉토리를 서비스 하기 위한 cvspserver 파일을 생성 해줍니다. [root@ruo91 ~]# vi /etc/xinetd.d/cvspserver
service cvspserver { disable = no flags = REUSE socket_type = stream wait = no user = cvs server = /usr/bin/cvs server_args = -f --allow-root=/home/cvs/ruo91 pserver }
적용을 위해 xinetd 데몬을 재시작 합니다. [root@ruo91 ~]# service xinetd restart xinetd 를 정지 중: [ OK ] xinetd (을)를 시작 중: [ OK ]
cvs 서버가 실행 되고 있는지 확인 합니다. (기본 포트는 2401) [root@ruo91 ~]# netstat -ant | grep 2401 tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN
4. CVS 테스트CVS 로그인 [root@ruo91 ~]# cvs -d :pserver:ruo91@localhost:/home/cvs/ruo91 login Logging in to :pserver:ruo91@localhost:2401/home/cvs/ruo91 CVS password:
CVS 체크아웃 후 저장소 다운로드 [root@ruo91 ~]# cvs -d:pserver:ruo91@localhost:/home/cvs/ruo91 co httpd-2.2.14
아파치 2.2.14 다운로드 테스트... [root@ruo91 ~]# cvs -d:pserver:ruo91@localhost:/home/cvs/ruo91 co httpd-2.2.14 cvs checkout: Updating httpd-2.2.14 cvs checkout: Updating httpd-2.2.14/build cvs checkout: Updating httpd-2.2.14/build/pkg cvs checkout: Updating httpd-2.2.14/build/rpm cvs checkout: Updating httpd-2.2.14/build/win32 cvs checkout: Updating httpd-2.2.14/docs cvs checkout: Updating httpd-2.2.14/docs/cgi-examples cvs checkout: Updating httpd-2.2.14/docs/conf cvs checkout: Updating httpd-2.2.14/docs/conf/extra cvs checkout: Updating httpd-2.2.14/docs/docroot cvs checkout: Updating httpd-2.2.14/docs/error cvs checkout: Updating httpd-2.2.14/docs/error/include cvs checkout: Updating httpd-2.2.14/docs/icons cvs checkout: Updating httpd-2.2.14/docs/icons/small cvs checkout: Updating httpd-2.2.14/docs/man cvs checkout: Updating httpd-2.2.14/docs/man/tr cvs checkout: Updating httpd-2.2.14/docs/manual cvs checkout: Updating httpd-2.2.14/docs/manual/developer cvs checkout: Updating httpd-2.2.14/docs/manual/faq cvs checkout: Updating httpd-2.2.14/docs/manual/howto cvs checkout: Updating httpd-2.2.14/docs/manual/images cvs checkout: Updating httpd-2.2.14/docs/manual/misc cvs checkout: Updating httpd-2.2.14/docs/manual/mod cvs checkout: Updating httpd-2.2.14/docs/manual/platform cvs checkout: Updating httpd-2.2.14/docs/manual/programs cvs checkout: Updating httpd-2.2.14/docs/manual/rewrite cvs checkout: Updating httpd-2.2.14/docs/manual/ssl cvs checkout: Updating httpd-2.2.14/docs/manual/style cvs checkout: Updating httpd-2.2.14/docs/manual/style/css cvs checkout: Updating httpd-2.2.14/docs/manual/style/lang cvs checkout: Updating httpd-2.2.14/docs/manual/style/latex cvs checkout: Updating httpd-2.2.14/docs/manual/style/xsl cvs checkout: Updating httpd-2.2.14/docs/manual/style/xsl/util cvs checkout: Updating httpd-2.2.14/docs/manual/vhosts cvs checkout: Updating httpd-2.2.14/include cvs checkout: Updating httpd-2.2.14/modules cvs checkout: Updating httpd-2.2.14/modules/aaa cvs checkout: Updating httpd-2.2.14/modules/arch cvs checkout: Updating httpd-2.2.14/modules/arch/netware cvs checkout: Updating httpd-2.2.14/modules/arch/win32 cvs checkout: Updating httpd-2.2.14/modules/cache cvs checkout: Updating httpd-2.2.14/modules/database cvs checkout: Updating httpd-2.2.14/modules/dav cvs checkout: Updating httpd-2.2.14/modules/dav/fs cvs checkout: Updating httpd-2.2.14/modules/dav/lock cvs checkout: Updating httpd-2.2.14/modules/dav/main cvs checkout: Updating httpd-2.2.14/modules/debug cvs checkout: Updating httpd-2.2.14/modules/echo cvs checkout: Updating httpd-2.2.14/modules/experimental cvs checkout: Updating httpd-2.2.14/modules/filters cvs checkout: Updating httpd-2.2.14/modules/generators cvs checkout: Updating httpd-2.2.14/modules/http cvs checkout: Updating httpd-2.2.14/modules/ldap cvs checkout: Updating httpd-2.2.14/modules/loggers cvs checkout: Updating httpd-2.2.14/modules/mappers cvs checkout: Updating httpd-2.2.14/modules/metadata cvs checkout: Updating httpd-2.2.14/modules/proxy cvs checkout: Updating httpd-2.2.14/modules/ssl cvs checkout: Updating httpd-2.2.14/modules/test cvs checkout: Updating httpd-2.2.14/os cvs checkout: Updating httpd-2.2.14/os/beos cvs checkout: Updating httpd-2.2.14/os/bs2000 cvs checkout: Updating httpd-2.2.14/os/netware cvs checkout: Updating httpd-2.2.14/os/os2 cvs checkout: Updating httpd-2.2.14/os/tpf cvs checkout: Updating httpd-2.2.14/os/tpf/samples cvs checkout: Updating httpd-2.2.14/os/unix cvs checkout: Updating httpd-2.2.14/os/win32 cvs checkout: Updating httpd-2.2.14/server cvs checkout: Updating httpd-2.2.14/server/mpm cvs checkout: Updating httpd-2.2.14/server/mpm/beos cvs checkout: Updating httpd-2.2.14/server/mpm/experimental cvs checkout: Updating httpd-2.2.14/server/mpm/experimental/event cvs checkout: Updating httpd-2.2.14/server/mpm/mpmt_os2 cvs checkout: Updating httpd-2.2.14/server/mpm/netware cvs checkout: Updating httpd-2.2.14/server/mpm/prefork cvs checkout: Updating httpd-2.2.14/server/mpm/winnt cvs checkout: Updating httpd-2.2.14/server/mpm/worker cvs checkout: Updating httpd-2.2.14/srclib cvs checkout: Updating httpd-2.2.14/srclib/apr cvs checkout: Updating httpd-2.2.14/srclib/apr/atomic cvs checkout: Updating httpd-2.2.14/srclib/apr/atomic/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/atomic/os390 cvs checkout: Updating httpd-2.2.14/srclib/apr/atomic/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/atomic/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/build cvs checkout: Updating httpd-2.2.14/srclib/apr/build/pkg cvs checkout: Updating httpd-2.2.14/srclib/apr/build/rpm cvs checkout: Updating httpd-2.2.14/srclib/apr/docs cvs checkout: Updating httpd-2.2.14/srclib/apr/dso cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/aix cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/beos cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/os390 cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/dso/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/file_io cvs checkout: Updating httpd-2.2.14/srclib/apr/file_io/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/file_io/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/file_io/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/file_io/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/include cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/aix cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/beos cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/os390 cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/include/arch/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/locks cvs checkout: Updating httpd-2.2.14/srclib/apr/locks/beos cvs checkout: Updating httpd-2.2.14/srclib/apr/locks/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/locks/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/locks/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/locks/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/memory cvs checkout: Updating httpd-2.2.14/srclib/apr/memory/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/misc cvs checkout: Updating httpd-2.2.14/srclib/apr/misc/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/misc/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/misc/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/mmap cvs checkout: Updating httpd-2.2.14/srclib/apr/mmap/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/mmap/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/network_io cvs checkout: Updating httpd-2.2.14/srclib/apr/network_io/beos cvs checkout: Updating httpd-2.2.14/srclib/apr/network_io/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/network_io/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/network_io/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/passwd cvs checkout: Updating httpd-2.2.14/srclib/apr/poll cvs checkout: Updating httpd-2.2.14/srclib/apr/poll/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/poll/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/random cvs checkout: Updating httpd-2.2.14/srclib/apr/random/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/shmem cvs checkout: Updating httpd-2.2.14/srclib/apr/shmem/beos cvs checkout: Updating httpd-2.2.14/srclib/apr/shmem/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/shmem/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/shmem/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/strings cvs checkout: Updating httpd-2.2.14/srclib/apr/support cvs checkout: Updating httpd-2.2.14/srclib/apr/support/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/tables cvs checkout: Updating httpd-2.2.14/srclib/apr/test cvs checkout: Updating httpd-2.2.14/srclib/apr/test/data cvs checkout: Updating httpd-2.2.14/srclib/apr/test/internal cvs checkout: Updating httpd-2.2.14/srclib/apr/threadproc cvs checkout: Updating httpd-2.2.14/srclib/apr/threadproc/beos cvs checkout: Updating httpd-2.2.14/srclib/apr/threadproc/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/threadproc/os2 cvs checkout: Updating httpd-2.2.14/srclib/apr/threadproc/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/threadproc/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/time cvs checkout: Updating httpd-2.2.14/srclib/apr/time/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/time/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr/user cvs checkout: Updating httpd-2.2.14/srclib/apr/user/netware cvs checkout: Updating httpd-2.2.14/srclib/apr/user/unix cvs checkout: Updating httpd-2.2.14/srclib/apr/user/win32 cvs checkout: Updating httpd-2.2.14/srclib/apr-util cvs checkout: Updating httpd-2.2.14/srclib/apr-util/buckets cvs checkout: Updating httpd-2.2.14/srclib/apr-util/build cvs checkout: Updating httpd-2.2.14/srclib/apr-util/build/pkg cvs checkout: Updating httpd-2.2.14/srclib/apr-util/build/rpm cvs checkout: Updating httpd-2.2.14/srclib/apr-util/crypto cvs checkout: Updating httpd-2.2.14/srclib/apr-util/dbd cvs checkout: Updating httpd-2.2.14/srclib/apr-util/dbm cvs checkout: Updating httpd-2.2.14/srclib/apr-util/dbm/sdbm cvs checkout: Updating httpd-2.2.14/srclib/apr-util/docs cvs checkout: Updating httpd-2.2.14/srclib/apr-util/encoding cvs checkout: Updating httpd-2.2.14/srclib/apr-util/hooks cvs checkout: Updating httpd-2.2.14/srclib/apr-util/include cvs checkout: Updating httpd-2.2.14/srclib/apr-util/include/private cvs checkout: Updating httpd-2.2.14/srclib/apr-util/ldap cvs checkout: Updating httpd-2.2.14/srclib/apr-util/memcache cvs checkout: Updating httpd-2.2.14/srclib/apr-util/misc cvs checkout: Updating httpd-2.2.14/srclib/apr-util/strmatch cvs checkout: Updating httpd-2.2.14/srclib/apr-util/test cvs checkout: Updating httpd-2.2.14/srclib/apr-util/test/data cvs checkout: Updating httpd-2.2.14/srclib/apr-util/uri cvs checkout: Updating httpd-2.2.14/srclib/apr-util/xlate cvs checkout: Updating httpd-2.2.14/srclib/apr-util/xml cvs checkout: Updating httpd-2.2.14/srclib/apr-util/xml/expat cvs checkout: Updating httpd-2.2.14/srclib/apr-util/xml/expat/conftools cvs checkout: Updating httpd-2.2.14/srclib/apr-util/xml/expat/lib cvs checkout: Updating httpd-2.2.14/srclib/pcre cvs checkout: Updating httpd-2.2.14/srclib/pcre/doc cvs checkout: Updating httpd-2.2.14/srclib/pcre/testdata cvs checkout: Updating httpd-2.2.14/support cvs checkout: Updating httpd-2.2.14/support/SHA1 cvs checkout: Updating httpd-2.2.14/support/win32 cvs checkout: Updating httpd-2.2.14/test
ruo91
2009/10/21 22:25
2009/10/21 22:25
Trackback Address >> http://www.yongbok.net/blog/trackback/87
from Linux
2009/10/15 05:54
NFS(Network File System)는 썬 마이크로 시스템(SUN)에서 네트워크를 통해 파일을 공유할 수 있도록 만든
프로토콜 이며 NFS의 하드웨어, 운영체제, 네트워크 구조가 서로 달라도 파일을 공유 할수 있도록 해줍니다. NFS는 리눅스에서 윈도우 사용자가 파티션을 마운트하여 사용하듯이 NFS서버의 특정 디렉토리를 클라이언트에서 마운트하여 자신의 영역인것 마냥 사용하는 것을 말합니다. NFS 는 RPC 를 이용하기 때문에 NFS, RPC 관련 패키지인 portmap 설치 되어 있는지 확인 해야 합니다. 필자는 CentOS 5.3 에서 구축했으며 기본적으로 portmap 설치와 옵션이 활성화 되어 있습니다. 만약 활성화가 되어 있지 않다면 수동으로 시작 해줍니다. portmap 설치 확인 [root@ruo91 ~]# rpm -qa | grep portmap portmap-4.0-65.2.2.1
portmap 시작 [root@ruo91 ~]# /etc/init.d/portmap start portmap (을)를 시작 중: [ OK ]
NFS 시작 [root@ruo91 ~]# /etc/init.d/nfs start NFS 서비스를 시작 중: [ OK ] NFS 쿼터를 시작 중: [ OK ] NFS 데몬을 시작 중: [ OK ] NFS mountd를 시작 중: [ OK ]
portmap, nfs 가 실행 되고 있는지 확인 [root@ruo91 ~]# rpcinfo -p 프로그램 버전 원형 포트 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 625 rquotad 100011 2 udp 625 rquotad 100011 1 tcp 628 rquotad 100011 2 tcp 628 rquotad 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 udp 54868 nlockmgr 100021 3 udp 54868 nlockmgr 100021 4 udp 54868 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 tcp 36016 nlockmgr 100021 3 tcp 36016 nlockmgr 100021 4 tcp 36016 nlockmgr 100005 1 udp 654 mountd 100005 1 tcp 657 mountd 100005 2 udp 654 mountd 100005 2 tcp 657 mountd 100005 3 udp 654 mountd 100005 3 tcp 657 mountd
마운트할 디렉토리를 설정하기 위해 /etc/exports 에 아래와 같이 추가 해줍니다. (읽기 쓰기가 가능) [root@ruo91 ~]# echo '/home/ruo91/public_html *(rw)' >> /etc/exports
NFS를 재시작을 하여 설정을 적용 해줍니다. [root@ruo91 ~]# /etc/init.d/nfs restart NFS mountd를 종료 중: [ OK ] NFS 데몬을 종료 중: [ OK ] NFS quota를 종료 중: [ OK ] NFS 서비스를 종료 중: [ OK ] NFS 서비스를 시작 중: [ OK ] NFS 쿼터를 시작 중: [ OK ] NFS 데몬을 시작 중: [ OK ] NFS mountd를 시작 중: [ OK ]
위에서 설정한 NFS 서버의 디렉토리를 다른 서버에서 마운트를 하기 위해 아래와 같이 해줍니다. /home/nfs 라는 디렉토리를 생성합니다. [root@ruo91 ~]# mkdir /home/nfs [root@ruo91 ~]# ls -al /home/nfs total 4 drwxr-xr-x 2 root wheel 512 10 15 13:40 . drwxr-xr-x 4 root wheel 512 10 15 13:40 ..
NFS 서버에서 설정된 디렉토리를 현재 /home/nfs 디렉토리로 마운트를 합니다. [root@ruo91 ~]# mount -t nfs 서버아이피:NFS 설정 디렉토리 마운트 할 디렉토리
[root@ruo91 ~]# mount -t nfs 192.168.0.100:/home/ruo91/public_html /home/nfs
마운트 된 디렉토리 확인 합니다. 이후 파일들을 추가하건 삭제를 하건.. 마음대로 할수 있으며 서버에서 동일하게 적용이 됩니다. [root@ruo91 ~]# ls -al /home/nfs total 38 drwxrwxrwx 7 ruo91 ruo91 4096 10 15 13:40 . drwxr-xr-x 4 root wheel 512 10 15 13:40 .. -rw-r--r-- 1 root wheel 309 10 15 13:40 backup-2009-10-16.tar.gz -rw-r--r-- 1 root wheel 81 10 15 13:39 hello.c drwxr-xr-x 2 root wheel 4096 10 15 13:38 메롱 drwxr-xr-x 2 root wheel 4096 10 15 13:38 방가 drwxr-xr-x 2 root wheel 4096 10 15 13:38 하이 drwxr-xr-x 2 root wheel 4096 10 15 13:38 헬로우 drwxr-xr-x 2 root wheel 4096 10 15 13:38 히히
NFS 설정 디렉토리를 알고자 할때 아래 명령어를 사용하면 쉽게 알수 있습니다. [root@ruo91 ~]# showmount -e NFS 서버 아이피
[root@ruo91 ~]# showmount -e 192.168.0.100 Exports list on 192.168.0.100: /home/ruo91/public_html *
마운트 된 상태에서 /home/nfs 디렉토리를 삭제 해보면 바쁘다고 안된다고 하네요.. 힝.. [root@ruo91 ~]# rm -rf /home/nfs rm: /home/nfs/: Device busy
이럴 때는 마운트를 해제 해주셔야 합니다. [root@ruo91 ~]# umount /home/nfs
ruo91
2009/10/15 05:54
2009/10/15 05:54
Tag // FreeBSD,
Linux,
Network File System,
Network File System 구축,
Network File System 설정,
NFS,
NFS 구축,
NFS 설정,
리눅스,
리눅스 NFS 구축,
리눅스 NFS 설치
Trackback Address >> http://www.yongbok.net/blog/trackback/86
rsync 는 서버간의 데이터를 동기화 할때 주로 사용하며 파일크기, 시간 변화등을 이용하여 동기화를 합니다. FreeBSD 에서 ports 로 설치를 진행합니다. [root@ruo91 ~]# cd /usr/ports/net/rsync && make install clean
설치가 완료 되면 /etc/rc.conf 에 rsync 를 사용 가능하도록 설정 해줍니다. [root@ruo91 ~]# echo 'rsyncd_enable="YES"' >> /etc/rc.conf
설치된 디렉토리에 접근하여 rsyncd.conf 를 사용자 환경에 맞게 수정 해줍니다. [root@ruo91 ~]# vi /usr/local/etc/rsyncd.conf
# 서비스명 [yongbok] # rsync 할 디렉토리 설정 path = /home/ruo91/public_html # nobody 권한으로 실행 uid = nobody gid = nobody # chroot 사용 여부 use chroot = yes # 읽기만 가능 read only = yes # 접속 가능 한 아이피 설정 hosts allow = 192.168.0.200 # 설명 부분 comment = ruo91 public_html copy that # 최대 접속 MAX CONNECTIONS = 10
rsync 데몬을 실행합니다. [root@ruo91 ~]# /usr/local/etc/rc.d/rsyncd start Starting rsyncd.
rsync 프로세스를 확인을 합니다. [root@ruo91 ~]# ps -aux | grep rsync root 54890 0.0 0.2 3128 1604 ?? Is 6:36PM 0:00.02 /usr/local/bin/rsync --daemon
동기화 하고자 하는 서버에 rsync 명령어를 통해 데이터를 동기화 합니다. rsync –avz 서버IP::서비스명 동기화 할 디렉토리 경로
rsync 옵션 -v verbose (자세하게 보여줌) -a archive mode -u update only(새로운 파일을 덮어쓰지 않음) --delete 서버쪽에 없고 클라이언트쪽에만 있는 파일을 지움 -z compress (전송시 압축을 함) --daemon 데몬 모드로 운영함 (이건 inetd.conf에 지정할 때 필요함) -r recursive (하위 디렉토리까지 포함) -l 심볼릭 링크 재생성 -p 퍼미션 업데이트 -t 변경시간 전송 (이것이 없으면 전송한 시간으로 바뀜) -g 그룹이름 변경
사용 예 [root@ruo91 ~]# rsync -avz 192.168.0.100::yongbok /home/ruo91/public_html receiving file list ... done ./ hello.c hello.tar.gz
sent 86 bytes received 488 bytes 1148.00 bytes/sec total size is 282 speedup is 0.49
[root@ruo91 ~]# ls -al /home/ruo91/public_html 합계 24 drwxrwxrwx 2 1001 1001 4096 10월 14 18:30 . drwx------ 4 ruo91 ruo91 4096 10월 14 07:18 .. -rwxrwxrwx 1 1001 1001 82 10월 14 18:29 hello.c -rwxrwxrwx 1 1001 1001 200 10월 14 18:30 hello.tar.gz
ruo91
2009/10/14 09:55
2009/10/14 09:55
Trackback Address >> http://www.yongbok.net/blog/trackback/68
from Linux
2009/10/13 08:13
사용자 추가 [root@ruo91 ~]# useradd ruo91
사용자 비밀번호 설정 (파란색 부분은 보안상 보이지 않음) [root@ruo91 ~]# passwd ruo91 Changing password for user ruo91. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
사용자 삭제
[root@ruo91 ~]# userdel --help
사용법: userdel [옵션] <로그인>
옵션:
-f, --force 파일의 소유자가 아니더라도 강제로 지웁니다
-h, --help 이 도움말 메시지를 표시하고 끝냅니다
-r, --remove 홈 디렉토리와 메일 저장소을 지웁니다
[root@ruo91 ~]# userdel -r ruo91
사용자가 잘 지워졌는지 확인.. 사용자가 잘 지워졌다면 아무것도 안나옴 [root@ruo91 ~]# cat /etc/passwd | grep ruo91
사용자 그룹 추가 현재 그룹 확인 [ruo91@ruo91 ~]$ id uid=500(ruo91) gid=500(ruo91) groups=500(ruo91)
yongbok 이라는 이름의 그룹 추가 [root@ruo91 ~]# groupadd yongbok
ruo91 사용자의 그룹을 yongbok 그룹으로 변경 [root@ruo91 ~]# usermod -g yongbok ruo91
ruo91 사용자로 재로그인 후 그룹 변경 확인 [ruo91@ruo91 ~]$ id uid=500(ruo91) gid=501(yongbok) groups=501(yongbok)
사용자 그룹 삭제 [root@ruo91 ~]# groupdel ruo91
ruo91
2009/10/13 08:13
2009/10/13 08:13
Trackback Address >> http://www.yongbok.net/blog/trackback/82
FreeBSD 에서 한글 로케일을 변경하고 싶을 경우 자신의 홈 디렉토리에서 .cshrc 파일에 아래와 같이 추가 해준다. ruo91# echo 'setenv LANG ko_KR.eucKR' >> ~/.cshrc
ruo91# echo 'setenv LC_ALL ko_KR.eucKR' >> ~/.cshrc 위의 설정을 적용하고 로케일이 변경됐는지 확인 한다. ruo91# source ~/.cshrc
ruo91# locale
LANG=ko_KR.eucKR
LC_CTYPE="ko_KR.eucKR"
LC_COLLATE="ko_KR.eucKR"
LC_TIME="ko_KR.eucKR"
LC_NUMERIC="ko_KR.eucKR"
LC_MONETARY="ko_KR.eucKR"
LC_MESSAGES="ko_KR.eucKR"
LC_ALL=ko_KR.eucKR
Bash 쉘 사용자라면 .profile 파일에 아래와 같이 추가 해주면 된다. [root@ruo91 ~]# echo 'export LANG=ko_KR.eucKR' >> ~/.profile [root@ruo91 ~]# source ~/.profile [root@ruo91 ~]# locale LANG=ko_KR.eucKR LC_CTYPE="ko_KR.eucKR" LC_COLLATE="ko_KR.eucKR" LC_TIME="ko_KR.eucKR" LC_NUMERIC="ko_KR.eucKR" LC_MONETARY="ko_KR.eucKR" LC_MESSAGES="ko_KR.eucKR" LC_ALL=ko_KR.eucKR
ruo91
2009/10/11 09:51
2009/10/11 09:51
Trackback Address >> http://www.yongbok.net/blog/trackback/67
from Linux
2009/10/08 02:44
Webalizer 보다 깔끔한 웹 서버 로그분석기인 AWStats 을 설치 하는 방법이다. 아래의 홈페이지에서 최신 Stable 버전을 받자. http://awstats.sourceforge.net/#DOWNLOAD
AWStats 설치awstats/tools 디렉토리에 있는 awstats_configure.pl 를 이용하여 설치를 진행하며 파란색 부분을 유심히 보길 바란다. [root@ruo91 ~]# wget http://prdownloads.sourceforge.net/awstats/awstats-6.9.tar.gz [root@ruo91 ~]# tar xzvf awstats-6.9.tar.gz [root@ruo91 ~]# mv awstats-6.9 /usr/local/awstats [root@ruo91 ~]# chmod 755 /usr/local/awstats [root@ruo91 ~]# cd /usr/local/awstats/tools [root@ruo91 ~]# ./awstats_configure.pl
아파치의 httpd.conf 설정 파일을 지정 해주면 된다. AWstats 에서는 httpd.conf 내용 중 로그 방식이
common 으로 되어 있으면 경고 메세지가 나오며 combined 방식으로 로그가 설정 되어야만 경고 메세지가 뜨질 않는다. ----- AWStats awstats_configure 1.0 (build 1.8) (c) Laurent Destailleur ----- This tool will help you to configure AWStats to analyze statistics for one web server. You can try to use it to let it do all that is possible in AWStats setup, however following the step by step manual setup documentation (docs/index.html) is often a better idea. Above all if: - You are not an administrator user, - You want to analyze downloaded log files without web server, - You want to analyze mail or ftp log files instead of web log files, - You need to analyze load balanced servers log files, - You want to 'understand' all possible ways to use AWStats... Read the AWStats documentation (docs/index.html).
-----> Running OS detected: Linux, BSD or Unix
-----> Check for web server install
Enter full config file path of your Web server. Example: /etc/httpd/httpd.conf Example: /usr/local/apache2/conf/httpd.conf Example: c:\Program files\apache group\apache\conf\httpd.conf Config file path ('none' to skip web server setup): > /usr/local/apache2/conf/httpd.conf
새로운 프로파일을 생성할지 물어본다. y 를 눌러 새로 생성해주자. -----> Check and complete web server config file '/usr/local/apache2/conf/httpd.conf' Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"' Add 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"' Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"' Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"' Add '<Directory>' directive AWStats directives added to Apache config file.
-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf' File awstats.model.conf updated.
-----> Need to create a new config file ? Do you want me to build a new AWStats config/profile file (required if first install) [y/N] ? y
새로 생성한 프로파일 이름을 지정 해준다.
만약 ruo91 이라고 지정 해줬다면 awstats.ruo91.conf 파일로 생성 된다. (도메인으로 입력 했다면 awstats.www.yongbok.net.conf 로 생성 된다.) -----> Define config file name to create What is the name of your web site or profile analysis ? Example: www.mysite.com Example: demo Your web site, virtual server or profile name: > www.yongbok.net
config 파일이 저장될 디렉토리를 지정 해준다. 기본값은 /etc/awstats 이다. -----> Define config file path In which directory do you plan to store your config file(s) ? Default: /etc/awstats Directory path to store config file(s) (Enter for default): > /etc/awstats
새로운 프로파일이 생성 되었으며 엔터를 눌러 설치를 완료 한다. -----> Create config file '/etc/awstats/awstats.www.yongbok.net.conf' Config file /etc/awstats/awstats.www.yongbok.net.conf created.
-----> Add update process inside a scheduler Sorry, configure.pl does not support automatic add to cron yet. You can do it manually by adding the following command to your cron: /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.yongbok.net Or if you have several config files and prefer having only one command: /usr/local/awstats/tools/awstats_updateall.pl now Press ENTER to continue...
A SIMPLE config file has been created: /etc/awstats/awstats.www.yongbok.net.conf You should have a look inside to check and change manually main parameters. You can then manually update your statistics for 'www.yongbok.net' with command: > perl awstats.pl -update -config=www.yongbok.net You can also read your statistics for 'www.yongbok.net' with URL: > http://localhost/awstats/awstats.pl?config=www.yongbok.net
Press ENTER to finish...
생성된 프로파일을 수정 해준다. [root@ruo91 ~]# cd /etc/awstats [root@ruo91 ~]# vi /etc/awstats/awstats.www.yongbok.net.conf # 로그 파일 지정 # 기본값 LogFile="/var/log/httpd/mylog.log" # 필자는 아파치의 logrotate 를 사용하여 로그를 분리하므로 아래와 같이 설정 해줌 LogFile="/home/apache2-log/www/www-access-%YYYY-%MM-%DD.log" # # 언어 설정 (기본값 auto) # 한글로 사용 가능 하도록 ko 로 변경 Lang="ko"
/var/lib 디렉토리에 awstats 하위 디렉토리를 생성 해준다. [root@ruo91 ~]# mkdir /var/lib/awstats
해당 로그에 대한 자료를 웹에서 확인 하려면 프로파일이 업데이트 되어야 하므로 아래와 같이 한다. [root@ruo91 ~]# /usr/local/awstats/tools/awstats_updateall.pl now Running
'"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update
-config=www.yongbok.net -configdir="/etc/awstats"' to update config
www.yongbok.net Create/Update database for config "/etc/awstats/awstats.www.yongbok.net.conf" by AWStats version 6.9 (build 1.925) From data in log file "/home/apache2-log/www/www-access-2009-10-08.log"... Phase 1 : First bypass old records, searching new record... Direct access after last parsed record (after line 475) Jumped lines in file: 475 Found 475 already parsed records. Parsed lines in file: 1 Found 0 dropped records, Found 0 corrupted records, Found 0 old records, Found 1 new qualified records.
로그가 변경 될때 마다 수동으로 업데이트하기 번거우므로 crontab 으로 5분마다 업데이트 하도록 설정 한다. [root@ruo91 ~]# echo \ '*/5 * * * * root /usr/local/awstats/tools/awstats_updateall.pl now' >> /etc/crontab
정상 등록 되었나 확인 [root@ruo91 ~]# cat /etc/crontab | grep awstats */5 * * * * root /usr/local/awstats/tools/awstats_updateall.pl now
이제 웹 페이지에서 확인 해보면 된다. http://www.yourdomain.com/awstats/awstats.pl?config=config-file
ruo91
2009/10/08 02:44
2009/10/08 02:44
Trackback Address >> http://www.yongbok.net/blog/trackback/81
|
|
|