본문 바로가기

OS/Ubuntu

[Ubuntu]우분투에 아파치+톰캣 설치하기

Virtual Box ver.4.1.0 r73009 가상머신의

Ubuntu 11.04 Server 32bit 에서 설치하였음.

 

우분투 설치후에 virtualBox의 콘솔창에서 우분투를 사용할 수 있으나, 스크롤이 안되고 복사가안되는 불편이 있기에..

SSH를 이용하여 작업하는게 편하다.

하지만 우분투는 기본적으로 모든 서비스에 대한 네트워크 접속이 막혀있기 때문에 SSH를 설치해줘야한다.

 

 

 

 

1.SSH 설치

-설치

$sudo apt-get install openssh-server

 

-서비스를 재시작한다

$sudo /etc/init.d/ssh restart

 

-서비스 허용

$sudo vi /etc/hosts.allow

----------------------------------------------

맨 마지막줄에 추가한다.

 

sshd : 192.168.56.1       -virtualBox의 IP이다.

 

----------------------------------------------

 

-실행 확인

$ps ax  grep ssh

1128 ?        Ss     0:00 /usr/sbin/sshd -D

1184 ?        Ss     0:00 sshd: jun [priv]

1210 ?        S      0:00 sshd: jun@pts/0

1313 pts/0    S+     0:00 grep --color=auto ssh

(위와 같이 프로세스가 실행되어 있다.)

 

$sudo netstat -ntlp  grep ssh

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1128/sshd

tcp6       0      0 :::22                   :::*                    LISTEN      1128/sshd

(22번 포트로 listen중인 것을 볼 수 있다.)

 

SSH설정완료.ssh를 통해 접속을 하면 내용이 암호화되어 보안에 취약하지 않다.

virtualBox를 사용할 경우 해당 머신의 네트워크 설정에서 22번포트를 포트포워딩 해줘야 한다.

putty를 통해 ssh로 접속한다. FTP기능도 된다.

 

 

 

 

2.JAVA설치 (jdk 1.6)

우분투 10.04부터는 apt-get 으로 sun-java-jdk 1.6설치가 안되는데, 이유는 apt-get repository 가 없어서이다.

$sudo apt-get install python-software-properties  (이게 설치되어있어야 다음진행 가능하다)

$sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"  (저장소를 추가한다)

$sudo apt-get update  (저장소 업데이트)

이제 jdk1.6을 설치할 수 있다

$sudo apt-get install sun-java6-jdk  (자바설치)

$java -version  (설치확인)

아래와 같이 출력될 경우 정상적으로 설치되었음. 

java version "1.6.0_26"

Java(TM) SE Runtime Environment (build 1.6.0_26-b03)

Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

 

 

 

 

3.APACHE설치 (apache2)

 

$sudo apt-get install apache2  (아파치 설치)

아파치 설치후 http://192.168.56.1 로 접속하면 (vitualBox의 경우 마찬가지로 포트포워딩 필요.)

it Works!   라고 나올경우 설치성공.

아파치의 기본 디렉토리는 /var/www/ 임. (webroot 디렉토리)

----------------------------------------------------------------------------------------------------------

- 아파치 디렉토리 구조 

우분투의 경우 아파치는 /etc/apache2 에 설치되며 구조는 다음과 같다 

 

/apache2 

    apache2.conf            : 아파치 기본 설정 

    /conf.d 

    envvars 

    httpd.conf 

    /mods-available 

    /mods-enabled 

    ports.conf 

    /sites-available          : 가상 호스팅 설정 

          default 

    /sites-enabled            : sites-available 의 링크 

          000-default 

 

가상 호스팅 관련 설정은 보통 /sites-available/default 파일을 복사해서 사용하나,

httpd.conf 나 apache2.conf 에 직접 삽입해도 된다(apache2 에서 httpd.conf 와 /sites-enable 의 링크를 include 한다).

 

 

 

 

4.TOMCAT설치 (tomcat6)

$sudo apt-get install tomcat6   (톰캣설치)

톰캣 설치후 http://192.168.56.1:8080/ 로 접속하면(vitualBox의 경우 마찬가지로 포트포워딩 필요.)

it Woks! 화면 나올경우 설치성공.

톰캣의 기본 디렉토리는 /var/lib/tomcat6/webapps/ROOT/ 임. (webroot 디렉토리)

 

 

 

5.APACHE & TOMCAT 연동

※연동해야 하는 이유 : http://ryudaewan.springnote.com/pages/610881

mod_jk 를 이용하여 연동함.

 

- mod_jk설치

$apt-get install libapache2-mod-jk

- workers.properties 파일 생성 (아파치의 내용을 톰캣으로 보내는 역할을 합니다)

$sudo vi /etc/libapache2-mod-jk/workers.properties

---------------------------------------------------------------------------

# 자바 경로 설정 (중간에 있음)

workers.java_home=/usr/lib/jvm/java-6-sun

 

worker.list=ajp13_worker

 

worker.ajp13_worker.port=8009

worker.ajp13_worker.host=localhost

worker.ajp13_worker.type=ajp13 

worker.ajp13_worker.lbfactor=1

---------------------------------------------------------------------------

 

- apache2 설정을 조작해서 모듈을 직접 로드하도록 만듬

$sudo vi /etc/apache2/mods-available/jk.conf   (파일 생성)

---------------------------------------------------------

<IfModule mod_jk.c>

    JkWorkersFile /etc/libapache2-mod-jk/workers.properties

    JkLogFile /var/log/apache2/mod_jk.log

    JkLogLevel info

    JkOptions +ForwardURICompatUnparsed

</IfModule>

---------------------------------------------------------

 

$sudo vi /etc/apache2/mods-available/jk.load (생성되어있음. 내용확인)

-------------------------------------------------------------------

LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

-------------------------------------------------------------------

 

변경후 mod_jk 모듈을 사용가능하게 해줘야 한다.

$sudo a2enmod jk

 

 

마지막으로 아파치에서 .jsp파일을 톰캣에 넘기게 해줌

(원한다면 톰캣과 아파치의 루트 디렉토리를 같게 만들어줄 수도 있음)

 

(루트 디렉토리란 http://localhost/ 로 접속했을 때 참조하는 디렉토리를 말함

 위에서 아파치는 /var/www였고, 톰캣은 /var/lib/tomcat6/webapps/ROOT 였음)

 

아파치의 루트 디렉토리를 조작 및 jsp파일을 톰캣으로 넘기기 위해서

 

/etc/apache2/sites-enabled/000-default 파일을 수정하면 된다

 

아래에 DocumentRoot 뒤의 경로가 아파치의 Root 디렉토리다

 

톰캣과 같은 위치로 바꾸어 주어도 되고, 혹은 홈 디렉토리와 같이 편한 디렉토리를 적어도 된다

(아래 예는 톰캣과 같은 디렉토리로)

 

$sudo vi /etc/apache2/sites-enabled/000-default

---------------------------------------------------------------

 

(생략)

<VirtualHost *:80>

ServerAdmin webmaster@localhost

 

# DocumentRoot /var/www/

DocumentRoot /var/lib/tomcat6/webapps/ROOT/

 

    ###--- Apache Tomcat에서 처리할 URL 패턴을 등록한다.

    JkMount /*.jsp ajp13_worker

    JkMount /servlet/* ajp13_worker

    JkMount /*.do ajp13_worker

    JkMount /*.lnj ajp13_worker

    JkMount /*.xlnj ajp13_worker

 

<Directory />
      Options FollowSymLinks
      AllowOverride None
</Directory>

(생략)

---------------------------------------------------------------

마지막으로 8009포트 AJP/1.3이 활성화 되어 있는지 확인

 

$sudo vi /etc/tomcat6/server.xml

---------------------------------------------------------------

(생략)

 

    <!-- Define an AJP 1.3 Connector on port 8009 -->

    (주석을 풀어준다)

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 

(생략)

---------------------------------------------------------------

 

- tomcat6, apache2를 재시작

 

$sudo /etc/init.d/tomcat6 restart

$sudo /etc/init.d/apache2 restart

 

후에 아파치의 루트 디렉토리 (위의 예는 톰캣과 같은 /var/lib/tomcat6/webapps/ROOT)에

jsp파일과  html파일을 각각 넣고 테스트해 본다.

[FTP프로그램 : http://filezilla-project.org/] 파일질라를 사용했음.

파일 업로드시에 해당 폴더 권한을 확인한다. 권한없을시에

$sudo chmod 777 /var/lib/tomcat6/webapps/ROOT 실행.

 

-------

연동 끝.

-------

 

 

 

※톰캣의 루트를 아파치의 루트로 바꾸려면

 

$ vi /etc/tomcat6/server.xml

--------------------------------------------------------

      <Host name="localhost"  appBase="/var/www/"

            unpackWARs="true" autoDeploy="true"

            xmlValidation="false" xmlNamespaceAware="false">

        <Context path="" docBase="." reloadable="true"/>

--------------------------------------------------------

출처 : http://blog.naver.com/wnsdnd83