61.Linux2008. 7. 7. 15:43
반응형

리눅스 서버를 이용한 자바 개발 환경 구축

이 문서는 초보자도 쉽게 리눅스 서버를 이용한 자바 개발 환경을 구축할 수 있도록 돕기 위해서 작성되었습니다.
이 문서의 수정 및 재 배포가 가능하며 상업적 용도로 사용할 수 없습니다.

단 수정 및 재 배포 시 작성자의 이름 및 출처를 꼭 명시하기 바랍니다.

작성자 : 최광호(하이버즈)

작성일 : 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

  1. 리눅스 서버운영 환경 구축

    1. 설치 순서 : 리눅스 -> JDK -> JBoss -> MySQL -> Subversion -> Trac
    2. 리눅스 설치
      로고

      • 버전 : 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
        1. ### 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
      • 최신으로 update 한다

        ]# yum update
      • 시스템 점검 결과 보고와 관련된 /root/bin/sbin/system_check_port 스크립트 파일의 버그를 고친다.

        파일 중간에 lsof 명령 실행 부분을 절대경로로 바꿔준다.

        ]# vi /root/bin/sbin/system_check_port
        1. ### system_check_port 파일 ###
        2. 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

    3. JDK 설치
      Java

      • 버전 :  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
        1. ### profile 파일 ###
        2. JAVA_HOME=/usr/local/jdk
        3. PATH=$PATH:$JAVA_HOME/bin
        4. export JAVA_HOME
      • 변경된 설정을 시스템에 적용시킵니다.

        ]# source /etc/profile
      • 임의의 위치에서 실행시켜 봤을때 java version "1.6.0_05" 메시지가 나오면 성공적으로 설치된 것입니다.

        ]# java -version
    4. JBoss 설치
      JBoss - A Division of Red Hat

      • 버전 : 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
        ]# 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
        1. ### jboss_init_redhat.sh 파일 ###
        2. JBOSS_USER=${JBOSS_USER:-"root"}
        3. 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
        1. ### su_util.cfg 파일 ###
        2. ############## 시스템 채크 관련 설정 ###################
        3. # 관리자 메일주소 (여러명에게 보낼시 공백으로 띄워주세요)# 시스템 점검 결과를 보낼 메일 주소
          system_mailto = test@hibuz.com <- 메일 주소를 적어주면 시스템 점검 결과가 하루마다 메일로 전달된다.
          proclist = run.sh <- 추가
      • JBoss 를 시작한다.

        ]# service jbossd start
      • 방화벽에서 8080 포트를 열어준다. (방화벽 설정 > 사용자 설정 > 그 외의 포트 > 맨끝에 8080:tcp 추가 > 확인 > 확인 > 종료)

        ]# setup
      • 웹 브라우져로 확인한다.

        http://(설치한 IP주소 또는 도메인):8080/
    5. MySQL 설치
      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 서버 재시작 없이 사용자 정보가 반영되도록 하기 위함

    6. Subversion 설치
      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
        1. ### su_util.cfg 파일 ###
        2. ################# mysql 관련 셋팅 ###################
          # mysql bin 디렉토리를 설정합니다. 예) mysql_bin_dir = /usr/local/mysql/bin
          mysql_bin_dir = /usr/bin
        3. ## mysql 데이터 디렉토리
          mysql_data_dir = /var/lib/mysql
        4. ################# 아파치 관련 셋팅 ################
          ## apache bin 샐행 스크립트 위치 예) /usr/local/apache/bin/apachectl
          apache_bin_ctl = /etc/rc.d/init.d/httpd
        5. ## apache conf 디렉토리 예) /usr/local/apache/conf
          apache_conf_dir = /etc/httpd/conf
        6. ## htpasswd 명령어 위치
          htpasswd_path = /usr/bin/htpasswd
        7. ## 결과를 생성할 웹 절대 경로
        8. web_dir = /var/www/html/ssu
        9. ## 웹인증 아이디 (웹인증을 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
        1. ### ssl.conf 파일 ###
        2. <Location /svnroot>
            DAV svn
        3.   SVNParentPath /home/svnroot
        4.     AuthType Basic
        5.     AuthName "Hibuz's Repository"
        6.     AuthUserFile /etc/httpd/conf/passwd
        7.         <LimitExcept GET PROPFIND OPTIONS REPORT>
        8.             Require valid-user
        9.         </LimitExcept>
        10. </Location>
        11. </VitualHost>
      • 아파치를 시작 한다.

        ]# service httpd start
      • 웹 브라우져로 확인한다.

        https://(Subversion과 Apache를 설치한 IP주소 또는 도메인)/svnroot/repos1
    7. Trac 설치
      Trac

      • 버전 : Trac 0.10.4
      • yum install 명령으로 trac 을 설치하기 위해 Red Hat EL Repository를 추가한다.

        ]# vi /etc/yum.repos.d/SULinux-Base.repo
        1. [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
      • 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
        1. #Alias /trac/ <- 첫줄은 주석처리
        2. <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
        1. [components]
        2. 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

        1. smtp_enabled = true
          smtp_password = password
          smtp_user = root
      • 이클립스 플러그인 업데이트 에서 Mylyn 을 선택해서 trac connector를 포함한 플러그인들을 추가해서 설치한다.
      • task repositories 에서 Add Task Repository 로 http://(Subversion과 Apache를 설치한 IP주소 또는 도메인)/trac 을 추가해서 task를 생성할 수 있다.
      • 참고사항

        Subversion Repository 변경사항 동기화 명령어 : trac-admin /home/trac/myproject resync

Posted by 1010