리눅스 서버를 이용한 자바 개발 환경 구축
리눅스 서버를 이용한 자바 개발 환경 구축
이 문서는 초보자도 쉽게 리눅스 서버를 이용한 자바 개발 환경을 구축할 수 있도록 돕기 위해서 작성되었습니다.
이 문서의 수정 및 재 배포가 가능하며 상업적 용도로 사용할 수 없습니다.
단 수정 및 재 배포 시 작성자의 이름 및 출처를 꼭 명시하기 바랍니다.
작성자 : 최광호(하이버즈)
작성일 : 2007년 07월 24일 수요일
최종 수정일 : 2008년 03월 28일 금요일
이메일 : hibuz@하이버즈.com
설치할 항목들
-
리눅스서버 : SULinux 1.5 Server
- 커널 : kernel-2.6.9
- DB서버 : MySQL 4.1
- WAS 서버 : JBoss 4.2.2
- 형상관리 서버 : Subversion 1.1.4
- 이슈관리 서버 : Trac 0.10.4
-
리눅스 서버운영 환경 구축
- 설치 순서 : 리눅스 -> JDK -> JBoss -> MySQL -> Subversion -> Trac
-
리눅스 설치
- 버전 : SULinux 1.5 Server
- 다운로드 : http://www.sulinux.net/1.5/download.php
- 파일명 : SULinux-Server-1.5-i386.iso
-
설치 후 yum repository site를 centos 4 로 변경합니다. (subversion 관련 패키지가 SULinux repository에는 없으므로)
]# vi /etc/yum.repos.d/SULinux-Base.repo- ### SULinux-Base.repo 파일 ###[base]
name=SULinux-$releasever - Base
#mirrorlist=http://www.sulinux.net/mirrorlist/?release=1&arch=i386&repo=os <- 주석처리
baseurl=http://mirror.centos.org/centos/4/os/$basearch/ <- 추가
gpgkey=http://mirror.centos.org/centos/4/os/$basearch/RPM-GPG-KEY-centos4 <- 추가
#baseurl=http://ftp.sulinux.net/pub/SULinux/1/os/$basearch/
gpgcheck=0
#released updates
[update]
name=SULinux-$releasever - Updates
#mirrorlist=http://www.sulinux.net/mirrorlist/?release=1&arch=i386&repo=updates <- 주석처리
baseurl=http://mirror.centos.org/centos/4/updates/$basearch/ <- 추가
#baseurl=http://ftp.sulinux.net/pub/SULinux/1/updates/$basearch/
gpgcheck=0
- ### SULinux-Base.repo 파일 ###[base]
-
최신으로 update 한다
]# yum update -
시스템 점검 결과 보고와 관련된 /root/bin/sbin/system_check_port 스크립트 파일의 버그를 고친다.
파일 중간에 lsof 명령 실행 부분을 절대경로로 바꿔준다.
]# vi /root/bin/sbin/system_check_port- ### system_check_port 파일 ###
- lsof -P -> /usr/sbin/lsof -P
- 참고: http://www.sulinux.net/bbs/board.php?bo_table=qna_1_0&wr_id=2707&page=9
-
FTP 를 이용해 자료를 업로드할 계정을 생성한다. (각자 원하는 사용자 계정 추가)
]# adduser hibuz
]# passwd hibuz
-
JDK 설치
- 버전 : Java(TM) SE Development Kit 6 Update 5
- 다운로드 : http://java.sun.com/javase/downloads/index.jsp
- 파일명 : jdk-6u5-linux-i586.bin
-
이전에 생성한 계정으로 다운로드 받은 파일을 ftp로 서버에 업로드 합니다. ex) user: hibuz
설치할 경로로 파일을 옮깁니다. 여기서는 /usr/local 에 JDK를 설치할 것 입니다.]# mv /home/hibuz/jdk-6u5-linux-i586.bin /usr/local/ -
퍼미션을 확인하여 파일이 실행 가능하도록 권한을 설정합니다.
]# cd /usr/local/
]# chmod 755 jdk-6u5-linux-i586.bin
-
파일을 실행시켜서 JDK를 설치합니다.
]# ./jdk-6u5-linux-i586.bin -
먼저 화면에 사용권 계약이 출력됩니다. [스페이스]를 누르면 페이지 단위로 이동합니다.
끝까지 이동해서 Do you agree to the above license terms? [yes or no] 메시지가 보이면 y 또는 yes를 입력합니다.
압축이 풀리면서 JDK가 설치되고 나면 설치 파일은 삭제 합니다.]# rm jdk-6u5-linux-i586.bin -
/usr/local/jdk 디렉토리로도 접근 할 수 있도록 절대경로로 symbolic link 를 만듭니다.
]# ln -s /usr/local/jdk1.6.0_05 /usr/local/jdk -
etc/profile 파일을 에디터로 열어서 파일 첫부분에 JAVA_HOME을 추가 합니다.
]# vi /etc/profile- ### profile 파일 ###
- JAVA_HOME=/usr/local/jdk
- PATH=$PATH:$JAVA_HOME/bin
- export JAVA_HOME
-
변경된 설정을 시스템에 적용시킵니다.
]# source /etc/profile -
임의의 위치에서 실행시켜 봤을때 java version "1.6.0_05" 메시지가 나오면 성공적으로 설치된 것입니다.
]# java -version
-
JBoss 설치
- 버전 : JBoss application server 4.2.2
- 다운로드 : http://labs.jboss.com/jbossas/downloads
- 파일명 : jboss-4.2.2.GA.zip
-
다운로드 받은 파일을 ftp로 서버에 업로드 한 후 /usr/local/ 디렉토리로 파일을 옮깁니다.
]# mv /home/hibuz/jboss-4.2.2.GA.zip /usr/local/ -
다운받을 주소를 알고 있을 경우 wget 명령어로 받아도 됩니다.
]# cd /usr/local
]# wget http://jaist.dl.sourceforge.net/sourceforge/jboss/jboss-4.2.2.GA.zip
-
압축을 해제한 후 압축 파일은 삭제 합니다.
]# cd /usr/local
]# unzip jboss-4.2.2.GA.zip]# rm jboss-4.2.2.GA.zip
-
jboss_init_redhat.sh 파일을 수정한다.
]# vi /usr/local/jboss-4.2.2.GA/bin/jboss_init_redhat.sh- ### jboss_init_redhat.sh 파일 ###
- JBOSS_USER=${JBOSS_USER:-"root"}
- JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF -b 0.0.0.0"}
-
jboss-4.2.2.GA 디렉토리를 jboss 디렉토리로도 접근 할 수 있도록 절대경로로 symbolic link 를 만듭니다.
]# ln -s /usr/local/jboss-4.2.2.GA /usr/local/jboss -
부팅시 JBoss가 자동으로 실행되도록 절대경로로 symbolic link 를 만듭니다.
]# ln -s /usr/local/jboss/bin/jboss_init_redhat.sh /etc/rc.d/init.d/jbossd
]# cd /etc/rc.d/rc0.d
]# ln -s ../init.d/jbossd K72jbossd
]# cd /etc/rc.d/rc3.d
]# ln -s ../init.d/jbossd S72jbossd -
시스템 체크 관련 설정 파일의 실행 프로세스 항목에 run.sh를 추가한다.
]# vi /root/conf/su_util.cfg- ### su_util.cfg 파일 ###
- ############## 시스템 채크 관련 설정 ###################
- # 관리자 메일주소 (여러명에게 보낼시 공백으로 띄워주세요)# 시스템 점검 결과를 보낼 메일 주소
system_mailto = test@hibuz.com <- 메일 주소를 적어주면 시스템 점검 결과가 하루마다 메일로 전달된다.
proclist = run.sh <- 추가
-
JBoss 를 시작한다.
]# service jbossd start -
방화벽에서 8080 포트를 열어준다. (방화벽 설정 > 사용자 설정 > 그 외의 포트 > 맨끝에 8080:tcp 추가 > 확인 > 확인 > 종료)
]# setup -
웹 브라우져로 확인한다.
http://(설치한 IP주소 또는 도메인):8080/
-
MySQL 설치
- 버전 : MySQL 4.1.20
-
yum update 명령으로 MySQL을 설치한다. (의존성을 가진 패키지들을 같이 설치한다.)
]# yum install mysql-server - 설치후 서비스를 자동으로 시작할 수 있도록 선택해준다. (시스템 서비스 > mysqld 선택 > 확인 > 종료)
]# setup -
mysql을 시작한다.
]# service mysqld start -
초기 설치시 root 암호가 지정되어 있지 않아 보안상 위험하므로 비밀번호를 설정합니다.
]# mysqladmin -uroot -p password testpw <- 원하는 비밀번호 설정 -
mysql DB에 접속해 새로운 원격 사용자를 추가합니다. (호스트를 %로 하면 어떤 곳에서든 접속만 할 수 있음)
]# mysql -uroot -ptestpw mysql
mysql> insert into user (host, user, password) values ('%', 'hibuz', password('testpw')); <- 원하는 아이이 및 비밀번호 설정 -
새로운 DB를 생성해서 권한을 주고 테스트용 테이블을 생성합니다.
(호스트를 %로 해서 어떤 곳에서든 접속할 수 있고 hibuz 사용자에게 hibuzdb의 모든권한 부여)mysql> create database hibuzdb; <- 원하는 DB 생성
mysql> insert into db values('%','hibuzdb','hibuz', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> use hibuzdb;
mysql> create table test_table (
-> id int not null auto_increment primary key,
-> foo varchar(25),
-> bar int);
mysql> insert into test_table values(null, 'hello', 12345);
mysql> flush privileges; <- MySQL 서버 재시작 없이 사용자 정보가 반영되도록 하기 위함
-
Subversion 설치
- 버전 : Subversion 1.1.4
-
yum install 명령으로 subversion을 설치한다. (아파치 웹서버를 포함한 의존성을 가진 패키지들이 같이 설치된다.)
]# yum install mod_dav_svn -
https 프로토콜을 사용할 수 있도록 mod_ssl 패키지도 같이 설치한다.
]# yum install mod_ssl -
설치후 서비스를 자동으로 시작할 수 있도록 선택해준다. (시스템 서비스 > httpd 선택 > 확인 > 종료)
]# setup -
SULinux 의 환경설정 파일을 고쳐준다.
]# vi /root/conf/su_util.cfg- ### su_util.cfg 파일 ###
- ################# mysql 관련 셋팅 ###################
# mysql bin 디렉토리를 설정합니다. 예) mysql_bin_dir = /usr/local/mysql/bin
mysql_bin_dir = /usr/bin - ## mysql 데이터 디렉토리
mysql_data_dir = /var/lib/mysql - ################# 아파치 관련 셋팅 ################
## apache bin 샐행 스크립트 위치 예) /usr/local/apache/bin/apachectl
apache_bin_ctl = /etc/rc.d/init.d/httpd - ## apache conf 디렉토리 예) /usr/local/apache/conf
apache_conf_dir = /etc/httpd/conf - ## htpasswd 명령어 위치
htpasswd_path = /usr/bin/htpasswd - ## 결과를 생성할 웹 절대 경로
- web_dir = /var/www/html/ssu
- ## 웹인증 아이디 (웹인증을 yes 했을때만 사용)
htuser = admin <- 웹 시스템 점검 페이지(http://설치 IP/ssu) 에 접근시 계정 설정 [system_check 명령을 실행시키면 확인가능]
## 웹인증 패스워드 (웹인증을 yes 했을때만 사용)
htpass = sulinux
-
설정 변경후 이를 적용해 준다.
]# system_check_init --all -
설치 후 svnadmin 명령어로 파일 시스템을 이용한 저장소를 만들고 권한을 변경합니다.
]# mkdir /home/svnroot
]# cd /home/svnroot
]# svnadmin create repos1 --fs-type fsfs
]# chown -R apache.apache repos1
-
svn 사용자 계정을 만든다.
]# cd /etc/httpd/conf
]# htpasswd -c passwd hibuz <- https프로토콜을 이용해 svn을 이용할 별도의 계정, 처음 추가할 때만 -c옵션을 사용하고 다음 계정을 추가할 때는 -c 옵션을 빼고 사용한다.
NewPassword:
Re-type new password:
-
https 프로토콜로 svn에 접근할 수 있도록 환경을 설정합니다.
/etc/httpd/conf.d/ssl.conf 파일의 마지막 부분의 </VirtualHost> 태그 안쪽에 <Location>을 다음과 같이 추가 합니다.
접근은 아무나 가능하고 commit만 사용자 계정이 필요한 경우임]# vi /etc/httpd/conf.d/ssl.conf- ### ssl.conf 파일 ###
- <Location /svnroot>
DAV svn - SVNParentPath /home/svnroot
- AuthType Basic
- AuthName "Hibuz's Repository"
- AuthUserFile /etc/httpd/conf/passwd
- <LimitExcept GET PROPFIND OPTIONS REPORT>
- Require valid-user
- </LimitExcept>
- </Location>
- </VitualHost>
-
아파치를 시작 한다.
]# service httpd start -
웹 브라우져로 확인한다.
https://(Subversion과 Apache를 설치한 IP주소 또는 도메인)/svnroot/repos1
-
Trac 설치
- 버전 : Trac 0.10.4
-
yum install 명령으로 trac 을 설치하기 위해 Red Hat EL Repository를 추가한다.
]# vi /etc/yum.repos.d/SULinux-Base.repo- [dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el4/en/$basearch/dag
gpgcheck=0
enabled=0
includepkgs=clearsilver python-clearsilver trac
- [dag]
-
Trac을 설치하고 아파치와 연동하기 위해 mod_python 패키지도 같이 설치한다.
]# yum --enablerepo=dag install trac
]# yum install mod_python
-
설치 후 trac-admin 명령어로 파일 시스템을 이용한 저장소를 만들고 권한을 변경합니다. (묻는 과정에서 모두 엔터를 치고 Path to repository 에서 /home/svnroot/repos1 을 입력한다)
]# mkdir /home/trac
]# cd /home/trac
]# trac-admin /home/trac/myproject initenv
]# chown -R apache.apache trac
-
웹에서 접근 가능하도록 Location 을 등록한다.
]# vi /etc/httpd/conf.d/trac.conf- #Alias /trac/ <- 첫줄은 주석처리
- <Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
# "/svn/trac/foobar" is the folder you gave to trac-admin initenv earlier
PythonOption TracEnv /home/trac/myproject
# "/trac" is the same as the Location above
PythonOption TracUriRoot /trac
# "/tmp" should be some writable temporary directory
SetEnv PYTHON_EGG_CACHE /tmp
# "trac" can be any string, but must be the same for all
# Trac instances on the same Apache install
PythonInterpreter trac
</Location>
<Location /trac/login>
AuthType Basic
AuthName "hibuz"
AuthUserFile /etc/httpd/conf/passwd
Require valid-user
</Location>
-
Web Admin 플러그인 설치를 위한 권한 설정 후 확인해 본다.
]# trac-admin /home/trac/myproject permission add hibuz TRAC_ADMIN
]# trac-admin /home/trac/myproject permission add hibuz TICKET_ADMIN
]# trac-admin /home/trac/myproject permission list
- Python 2.3 버전으로 Web Admin plug-in 을 다운로드 받는다.
- Download for Trac 0.9.3 or later (Python 2.3) xmlrpcplugin.zip
-
서버에 올린후 확장자를 제거하고 압축을 해제한다.
]# mv TracWebAdmin-0.1.2dev_r4240-py2.3.egg.zip TracWebAdmin-0.1.2dev_r4240-py2.3.egg
]# unzip xmlrpcplugin.zip
-
easy_install 을 사용하기 위해 python 스크립트를 서버에 올린 후 설치한다. [다운로드 : http://hibuz.springnote.com/pages/596254/attachments/420486?download=true]
]# python ez_setup.py -
플러그인을 설치한다.
]# easy_install TracWebAdmin-0.1.2dev_r4240-py2.3.egg
]# easy_install xmlrpcplugin/0.10/
-
trac.ini에 내용 추가
]# vi /home/trac/myproject/conf/trac.ini- [components]
- webadmin.* = enabled
tracrpc.* = enabled
-
웹서버를 재시작한다.
]# service httpd reload -
웹 브라우져로 확인한다. (hibuz 계정으로 로그인 시 admin 탭이 보여야 한다.)
http://(Subversion과 Apache를 설치한 IP주소 또는 도메인)/trac -
이메일 통보 기능을 사용하려면 trac.ini 에서 smtp를 활성화 하고 saslpasswd2 명령을 통해 인증 사용자를 추가한다.
]# saslpasswd2 -c root <- 추가할 이메일 계정 사용자 -c 옵션은 최초 사용자 추가시 만 사용한다. /etc/sasldb2 파일을 생성해 준다.
]# vi trac.ini
- smtp_enabled = true
smtp_password = password
smtp_user = root
- smtp_enabled = true
- 이클립스 플러그인 업데이트 에서 Mylyn 을 선택해서 trac connector를 포함한 플러그인들을 추가해서 설치한다.
- task repositories 에서 Add Task Repository 로 http://(Subversion과 Apache를 설치한 IP주소 또는 도메인)/trac 을 추가해서 task를 생성할 수 있다.
-
참고사항
Subversion Repository 변경사항 동기화 명령어 : trac-admin /home/trac/myproject resync
- ㅇ
-
ㅇ
[참고자료] [Trac] Trac Plug ins 설치 - Eclipse의 Mylar 연동을 위해|작성자 황제펭귄
[참고자료]