본문 바로가기
운영체제 (LNX,WIN)

Apache + Tomcat + Oracle 구축 설명서

by 날으는물고기 2009. 1. 2.

Apache + Tomcat + Oracle 구축 설명서

목차

Apache + Tomcat + Oracle. 1

구축 설명서목차... 1

목차... 2

1. 작성자 정보... 3

2. 환경... 3

3. 설치순서... 3

4. 설치 설명... 4

4.1. Apache 설치... 4

4.2. JDK 1.6 설치... 12

4.3. Tomcat 5.5 설치... 13

4.4. JK-Connector 설치... 15

4.5. Oracle 설치... 17

4.6. JSP 와 Oracle 연동... 18

 

 


 

1. 작성자 정보

서울 시립대학교 컴퓨터 과학부

종욱

niceilm@gmail.com

박상현

park1020@gmail.com

 

 

2. 환경

Server

Sun Blade 1000(750MHz UltraSPARC III Module)

OS

Solaris 10

Web Server

Apache 2.0.59

AP Server

Tomcat 5.5.25

JDK

JDK 1.6

Database

Oracle 10g

 

 

3. 설치순서

설치 모듈

비고사항

Apache

Web Server를 설치합니다.

JDK

Java를 설치합니다.

Tomcat

Tomcat을 설치합니다.

JK-Connector

Apache Tomcat 연동을 위한 모듈 설치합니다.

Oracle

Database Server Oracle 설치합니다.

Oracle + JSP 연동

JSP 에서 원견 Oracle Server에 연결하는 과정입니다.

 


 

4. 설치 설명

 

4.1. Apache 설치

Xwindow 에서 설치를 하였습니다.

http://www.sunfreeware.com/ 에서 필요한 자료를 다운 받습니다.

SPARC / Solaris 10을 클릭합니다.

그 다음 우리가 설치할 apache2.059를 선택합니다.

그러면 바로 다운 받을 수 있는 링크가 나옵니다. 클릭해서 받으세요

 

디스크에 저장합니다.

저장 할 곳을 선택한 다음 파일이름 확인하고 저장합니다.

 

아까 apache2.0.59를 선택하면 그 하위에 종속 관계가 있는 프로그램들이 있습니다.
문제가 생기지 않도록 이 프로그램들도 모두 다운을 받습니다.

다운 받아야 하는 프로그램 중의 하나 입니다.

 

모두 다운을 받습니다.

설치는 root 권한으로 진행합니다. 콘솔창을 띄우고 root 사용자로 변경합니다.


$ su –

 

작업의 편리성을 위해 설치한 디렉토리로 이동합니다.

그리고 다운이 된 목록을 확인해보고 이제 압축을 풉니다.

 

# gunzip ./*.gz

위의 명령을 치면 모든 파일들이 압축을 해제하고 -local 형식으로 나타납니다.

기존에 설치된 Apache를 삭제 합니다. 우선 기존에 설치되어 있는 패키지를 확인합니다.

 

# pkginfo -i | grep -i apache
system SUNWapchd Apache Web Server Documentation
system SUNWapchr Apache Web Server (root)
system SUNWapchu Apache Web Server (usr)

아래 명령어를 통해 기존에 있던 아파치 패키지를 삭제 합니다.

 

# pkgrm 패키지 이름

 


 

아파치 1.3이 비활성화

 

주의: 만약 이전에 다른 SAMP 문서를 통해, 컴패니언 CD의 스크립트를 통해서, 혹은 직접적으로 아파치 1.3 버전을 활성화 시켰다면 이러한 단계를 밟아 나갈 때 충돌이 생길 수 것입니다. 진행하기 전에 아파치 1.3을 비활성화 시키는 것이 중요 합니다.

아파치 1.3이 비활성화 됐음을 확인 합니다:

 

 # svcs -a | grep apache

 legacy_run Sep_11lrc:/etc/rc3_d/S50apache

 

이것은 아파치 1.3의 레가시 rc 시작 스크립트가 /etc/rc3_d/S50apache 임을 보여 줍니다. 스크립트는 아파치의 설정파일 /etc/apache/httpd.conf 의 존재를 찾습니다. 그리고 만약 파일이 존재 하지 않으면 아파치 1.3은 기동되지 않습니다. 아파치 1.3을 비활성화 하려면 이전에 언급했던 패스에 파일이 존재하지 않음을 확인 하던지 혹은 시작 스크립트의 이름을 바꿔 버립니다. 이름을 다음에서:

 /etc/rc3_d/S50apache

다음으로 바꿔줍니다:

/etc/rc3.d/OFF-S50apache

"S" 로 시작하는 스크립트들 만이 실제로 부팅시에 시작 됩니다.

모든 준비가 완료되면 아까 받아서 풀어 놓은 아파치 2.0.59를 설치합니다.


#> pkgadd -d apache-2.0.59-sol10-sparc-local

기본 설치 위치는 /usr/local/apache2 가 됩니다.
환경설정 파일의 위치를 지정해줍니다.

#> /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf

환경 파일 설정
솔라리스에서는 이것을 꼭 고쳐야 아파치가 실행이 됩니다.

# vi /usr/local/apache2/conf/httpd.conf
Group #-1 --> Group nogroup
으로 변경

아파치 2 기동시키기:

# /usr/local/apache2/bin/apachectl start

만약 아파치 2가 성공적으로 기동 되면 ps 커맨드를 사용하여 아래와 같은 몇몇 프로세스들을 확인할 수 있어야 합니다:

 

# ps -ef | grep http

webservd 18592 38020Sep 11 ? 0:03 /usr/apache2/bin/httpd -k start

webservd 13093 38020Sep 08 ? 0:07 /usr/apache2/bin/httpd -k start

 

10개 이상의 이와 같은 프로세스들을 발견하더라도 놀라지 말기 바랍니다. 또한 다음과 같은 프로세스에도 놀라지 마십시오:

root 49810 Jul 17 ? 1:28 /usr/apache/bin/httpd  \

                 -f /etc/apache/httpd-standalone-ipp.conf

이것은 간단히 예전의 아파치 1.3이 네트워크 포트 631번에서 IPP(Internet Print Protocol)에 의해 사용되고 있음을 나타냅니다. 포트 80번에서 동작하지 않기 때문에 이 글에서 설정하는 웹서버의 충돌은 일어나지 않을 것입니다.

직접 창을 띄워 확인해 봅시다
.
웹브라우저에서 주소는
http://localhost

 

 

4.2. JDK 1.6 설치

 

1. http://java.sun.com 에서 솔라리스용 jdk 1.6 을 다운로드 받는다.

 

32 비트 버전부터 다운 받아야 한다.

 

#  zcat jdk-6<update>-solaris-sparc.tar.Z | tar -xf –

 

이전 버전 패키지를 삭제한다.

# pkgrm SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo

 

패키지를 설치한다.

#  pkgadd -d . SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo

 

2. 64 비트 버전을 받아 설치한다.

# zcat jdk-6<update>-solaris-sparcv9.tar.Z | tar -xf –

 

이전 버전 패키지를 삭제한다.

# pkgrm SUNWj6rtx SUNWj6dvx SUNWj6

 

패키지를 설치한다.

# pkgadd -d . SUNWj6rtx SUNWj6dvx SUNWj6dmx

 

4.3. Tomcat 5.5 설치

 

http://tomcat.apache.org 에서 Tomcat5.5를 받는다.

 

 

tar 형식으로 된 파일이 tar를 풀면서 에러가 나타났기 때문에 zip 형식으로 된 tomcat 파일을 받는다.

# unzip apache-tomcat-5.5.25.zip

 

압축을 풀면 디렉토리가 생긴다. 이 디렉토리를 옮긴다.

# mv ./apache-tomcat-5.5.25 /usr/local/tomcat5

 

아래 파일에 아래 내용을 추가한다.

# vi /etc/profile

 

export JAVA_HOME="/usr/jdk/jdk1.6.0_03/"

CLASSPATH=".:/usr/jdk/jdk1.6.0_03/lib/tools.jar"

export CLASSPATH

CATALINA_HOME=/usr/local/tomcat5

PATH=$PATH:$CATLINA_HOME/bin

export CATALINA_HOME

 

# source /etc/profile
위 명령어를 실행 시키면 적용된다.

zip
으로 압축을 푼 파일은 파일 권한에 실행 권한이 없습니다. 그러므로 실행권한을 주어야 합니다. 디렉토리 변경 후 아래 명령어를 실행 시킵니다.

 

# cd /usr/local/tomcat5/bin/

# chmod 755 ./*

 

# /usr/local/tomcat5/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat5

Using CATALINA_HOME:   /usr/local/tomcat5

Using CATALINA_TMPDIR: /usr/local/tomcat5/temp

Using JRE_HOME:       /usr/jdk/jdk1.6.0_03/

 

설치 확인

http://localhost:8080/

4.4. JK-Connector 설치

 

솔라리스용으로 컴파일된 JK-Connector를 받습니다.

http://tomcat.apache.org 이 곳에서 받을 수 있습니다.

 

 

이 파일을 이 위치에 위치 시킵니다.

/usr/local/apache2/modules/mod_jk.so

 

/usr/local/tomcat5/conf/server.xml 에 아래 내용을 추가합니다.

참고로 defaultHost 를 꼭 바꿔줍니다. localhost로 두면 외부에서 확인 불가능합니다.

 

<Engine name="Catalina" defaultHost="203.249.108.164"> <== 보통 요녀석 밑에 추가한다.

<Listener className="org.apache.jk.config.ApacheConfig" modJk="/usr/local/apache2/modules/mod_jk.so" />

        <Listener className="org.apache.jk.config.ApacheConfig" append="true" forwardAll="true" modJk="/usr/local/apache2/modules/mod_jk.so" />



/etc/apache2/httpd.conf 에 아래 내용을 추가한다.

Include "/usr/local/tomcat5/conf/auto/mod_jk.conf"

 

톰캣부터 재시작해서 아파치를 재시작합니다.

 

# /usr/local/tomcat/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat5

Using CATALINA_HOME:   /usr/local/tomcat5

Using CATALINA_TMPDIR: /usr/local/tomcat5/temp

Using JRE_HOME:       /usr/jdk/jdk1.6.0_03/

 

# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat5

Using CATALINA_HOME:   /usr/local/tomcat5

Using CATALINA_TMPDIR: /usr/local/tomcat5/temp

Using JRE_HOME:       /usr/jdk/jdk1.6.0_03/

 

# /usr/local/apache2/bin/apachectl restart

 

결과화면

접속 포트는 아파치 서버로 접속했으나 JSP 파일은 톰캣에서 처리해서 아파치에게 보내줍니다.


 

4.5. Oracle 설치

다른 파일로 첨부


 

4.6. JSP Oracle 연동

1. Oracle 시동

오라클 유저로 전환

# su – oracle

 

오라클리스너 시작

$ lsnrctl start

 

오라클관리툴인 서버 매니저 실행

$ svrmgrl

 

오라클 조정할 수 있는 권한으로 접속

SVRMGR> connect internal

 

오라클 시작

SVRMGR> startup

SVRMGR> exit

 

sqlplus 에 접속합니다.

$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 10 18 15:14:24 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

SQL> connect / AS SYSDBA

연결되었습니다.

 

사용자 접속 권한 부여

SQL> ALTER USER scott ACCOUNT UNLOCK;

사용자가 변경되었습니다.

 

암호 변경

SQL> ALTER USER scott IDENTIFIED BY tiger;

사용자가 변경되었습니다.

 

 

2. JDBC 클래스파일 설정

여기서 받음 http://www.oracle.com

오라클 JDBC를 받음

 

JDBC 클래스 파일위치 지정 방법 1 – 실행 되는 웹 어플리케이션의 라이브러리로 지정한다.

$CATALINA_HOME/webapp/PMSWebUI/WEB-INF/lib/ojdbc14.jar

 

JDBC 클래스 파일위치 지정 방법 2 – Tomcat의 전역 라이브러리로 지정한다.

$CATALINA_HOME/common/lib/ojdbc14.jar

 

JDBC 클래스 파일 위치 지정 방법 3 – 시스템 전역변수로 등록한다.

#주의# "."을 잊지말것

/etc/profile에 클래스패스설정

export CLASSPATH="$CLASSPATH:.:/usr/local/jdk1.6/jdbc/ojdbc14.jar"

 

설정을 시스템에 적용시킵니다.

# source /etc/profile

위의 방법이 속도 면에서 더 빠르다고 합니다.

 

3. 연결 방법

Java Source에서 설정

db_host = ”jdbc:oracle:thin:@오라클서버주소:오라클포트번호:SID”;

db_id = ”데이터베이스계정”;

db_pw = “데이터베이스계정패스워드”;

Class.forName("oracle.jdbc.driver.OracleDriver");

java.sql.Connection conn = DriverManager.getConnection(db_host, db_id, db_pw);

 

4. Java Source Code

DBConnector.java – Source Code

package DB;

import java.sql.DriverManager;

import java.sql.SQLException;

 

public class DBConnector {

 

       private String url = "jdbc:oracle:thin:@oracle.uos.ac.kr:1521:ORCL";

       private String id = "scott";

       private String pass ="tiger";

       private java.sql.Connection conn;

       private String status;

 

 

       public DBConnector() throws SQLException {

             try {

                    // 1 단계 : 데이터베이스와 연결하여 사용할 파일들이 있는지를 확인

                    Class.forName("oracle.jdbc.driver.OracleDriver");

                    // 2 단계 : 드라이버 클래스를 통해 DB 서버와 연결하는 Connection 객체 생성

                    conn = DriverManager.getConnection(url, id, pass);

                    status="연결 성공";

                    System.out.println(status);

                   

             }

             catch(SQLException ee) {

                    status="연결 실패";

                    System.err.println("SQL Error = " + ee.toString());

                    System.err.println("error = " + ee.toString());

                    conn.close();

             }

             catch(ClassNotFoundException ee) {

                    ee.printStackTrace();

             }

       }

       public String getStatus(){

             return this.status;

       }

}

 

5. JSP Source Code

TestDB.jsp - Source Code

<%@ page import="DB.*" language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

</head>

<body>

<%

       DBConnector tt = new DBConnector();

       out.print(tt.getStatus());

%>

 

</body>

</html>

 

 

 

6. 실행 화면

 



tomcat 세팅 및 가상 디렉토리 설정 하기


- 환경 변수

CLASSPATH에 아래 내용 추가

C:\apache-tomcat-5.5.25\common\lib\servlet-api.jar

-> 서블릿 컴파일 시 javax를 따로 패스를 잡지 않아도 됨.

CATALINA_HOME

C:\apache-tomcat-5.5.25

JRE_HOME

C:\Program Files\Java\jre1.6.0_04

- 디렉토리 생성 및  WEB-INF 내용을 추가

1.  서버 구축할 디렉토리 생성

2. 디렉토리 안에 WEB-INF 폴더 생성

3. WEB-INF 안에 classes 폴더와 lib 폴더 생성 및 web.xml 생성

    ※ 톰캣 폴더 안에 -> webapps -> ROOT -> WEB-INF -> web.xml 파일을 복사 한다. -> 주석 제거 및 jsp들어간 내용 제거

 

- web.xml 내용

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
</web-app>

 

- server.xml에 수정 사항

<Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="euc-kr" />

 

-> Get 방식의 한글 깨짐을 해결 하기 위해서

- C:\apache-tomcat-5.5.25\conf\Catalina\localhost 폴더 안에 'ajaxtest.xml' 파일을 생성하여 아래 내용 입력

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/ajaxtest" docBase="c:\ajaxtest\" debug="0" reloadable="true" crossContext="true">
</Context>

-> 생성한 디렉토리 경로 설정 및 URL 경로 설정

      ※ tomcat4.0 은 server.xml에 추가 사항 이였지만 tomcat 5.0 이상 권고사항(관리 모드가 생겨나면서..)

 

oracle 10g

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/board_jsp" docBase="E:\tt_work\board_jsp" debug="0" reloadable="true" crossContext="true">
 <Resource name="jdbc/oracle"
  auth="Container"
  type="javax.sql.DataSource"
  username="board"
  password="board"
  driverClassName="oracle.jdbc.driver.OracleDriver"
  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
  url="jdbc:oracle:thin:@192.168.225.4:1521:orcl"
  maxActive="500"
  maxIdle="100"/>
</Context>

 

oralce 9i

 

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/board_jsp" docBase="E:\tt_work\board_jsp" debug="0" reloadable="true" crossContext="true">
  <Resource name="jdbc/Oracle9i"
   auth="Container"
   type="javax.sql.DataSource"
   username="shop"
   password="shop"
   driverClassName="oracle.jdbc.driver.OracleDriver"
   factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
   url="jdbc:oracle:thin:@127.0.0.1:1521:ORA92"
   maxActive="500"
   maxIdle="100"/>
 </Context>


jsp 환경구축  (apache tomcat + jdk + mysql) -윈도우 2000 의경우
  
  1. jdk 설치 ( c:jdk로설치 )
         (구할곳 http://java.sun.com)
  2. tomcat설치
     (c:tomcat로설치 후 시작-설정-제어판-관리도구-서비스 에서 Apache Tomcat관련이 있나본다)
     (구할곳 http://jakarta.apache.org/builds/jakarta-tomcat-4.0/archives/ )
     (c:tomcatwebappsRootWeb-inf 방안에 classes방을만든다 여기가 서블릿실행방이다)

  3. mysql설치 ( c:mysql로설치 )
         (구할곳 http://www.mysql.com)
  ## jdbc 연동 ( tomcat+ mysql연결) ##
  4. mm.mysql-2.0.2-bin.jar 구함 (http://mmmysql.sourceforge.net 나 검색엔진에서 검색)
  5. mm.mysql-2.0.2-bin.jar을 c:jdkjrelib 방에 복사넣음

  ## 환경 설정 ##
  6. c:Tomcatconfserver.xml 메모장으로 열음

      <!-- Tomcat Root Context -->
       <!--      <- 삭제
       <Context path="" docBase="ROOT" debug="0"/>
       -->       <- 삭제

   삭제부분적은주석 삭제

  7. 바탕화면에서 내컴퓨터-오른쪽마우스 등록정보 -고급탭 -환경변수 누름
  8. 1)변수이름: JAVA_HOME 값: C:jdk
     2)변수이름: TOMCAT_HOME 값: C:Tomcat
     3)
        !!서블렛 파일찾기
        시작-검색에서 servlet.jar를검색해서 경로를알아낸다!!    
                  
        !!jdbc파일경로
          위5부분에서
              c:jdkjrelib 이방에 mm.mysql-2.0.2-bin.jar을넣었죠!!          
       --------------------------------------------------------------------------
       변수이름: classpath
       값: .;c:jdkjrelibmm.mysql-2.0.2-bin.jar;c:Tomcatcommonlibservlet.jar;  
       --------------------------------------------------------------------------    
    
       .;c:jdkjrelibmm.mysql-2.0.2-bin.jar  <- jdbc
       ;c:Tomcatcommonlibservlet.jar;     <- 서블렛
      
      4)변수이름: PATH 값: %PATH%;c:JDKbin

   위 4가지변수를 새로만들기 눌러 4개 만든다  

  ## mysql설정 ##  
  9. 도스창을연다
     1) cd c:mysqlbin을 치고 mysql명령방으로 들어간다
     2) c:mysqlbin> mysqld-nt --install를 친다 (도스창닫지말고)
     3) 시작-설정-제어판-관리도구-서비스 에서 mysql(데몬) 작동하는지 확인하고
        작동하지않으면 작동시킨다
     4) 조금전 도스창에서 c:mysqlbin> mysql mysql 엔터
        --- root 비번변경 --
     5) mysql> update user set password=password('1111') where user='root';
        위 1111은 원하는 비밀번호로 변경요망.
        --- 유저추가 --
     6) mysql> insert into user values('localhost','korea',password('fighting'),'y','y',
               'y','y','y','y','y','y','y','y','y','y','y','y');
        korea부분은 아디고 뒤는 패스워드다 y들은 권한설정인데 여기선 루트와 같은권한이다
     8) mysql> create database mydb;
     9) exit;
     10) c:mysqlbin> mysqldadmin reload
     11) c:mysqlbin> mysql -ukorea -pfighting
     12) mysql>exit;
     13) c:mysqlbin>exit
      
  10. 부팅한다

  11. 밑의 문장을 c:TomcatwebappsRoot 방에 jdbctest.jsp로 저장하고
      DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","user","password");      
      위부분에서 mysql설정에서 만든 데이타베이스이름 mydb를변경 위에서만든 사용자 user를
      변경 위에서 만든 비밀번호 password를 변경 하고 저장하고
      브라우저를열어 http://localhost:8080/jdbctest.jsp 치고 jdbc연동 성공여부를본다
      !! 또다른연동확인법 도스창을열고 javap org.gjt.mm.mysql.Driver 를친다
          만약 이방법은되는데 브라우저에서 안된다면 소스에 문제가있다 !!


<%@ page import="java.sql.*" contentType="text/html;charset=euc-kr" %>
<%

        /* mysql인 경우와 오라클인 경우에 따라 주석을 제거하여 테스트하세요.*/
        try {
                Class.forName("org.gjt.mm.mysql.Driver"); //mysql인 경우
                //Class.forName("oracle.jdbc.driver.OracleDriver"); //오라클인 경우        

                Connection conn =
                DriverManager.getConnection("jdbc:mysql://localhost:3306/siloam","siloam","green");
                //DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","kimho","1234"); 오라클인 경우

                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery("select b_name from kimhoboard");
                String name="";
                if(rs.next()) {
                        out.println("JDBC 설정 성공");                
                } else {
                        out.println("어쨌든 JDBC 설정 성공");
                }
                stmt.close();
                conn.close();
        } catch(Exception e) {
                out.println("err01:"+e);
        } finally {
                try {
                        //conn.close();
                } catch(Exception e) {
                        out.println("err02:"+e);
                }
        }
%>

출처: http://jehani.net/bbs/zboard.php?id=it_tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=name&desc=asc&no=25

728x90

댓글