Solaris

솔라리스에 apache+tomcat(jsp)+jdbc 2.0(오라클) 또는 jdbc(mysql)사용하기

알 수 없는 사용자 2008. 2. 28.
728x90
출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=6697&sca=&sfl=wr_subject%7C%7Cwr_content&stx=tomcat&sop=and&page=2

작성자 : 전병혁(chunbh@bcline.com)
작성일 : 2000년 4월 23일

- 주의사항 : 아래 문서를 꼭 읽어 보시기 바랍니다. 필자의 경우 아래 문서를 참고해서 성공했습니다.

http://www.phpschool.com/bbs2/inc_view.html?id=6635&code=tnt2&start=0&mode=&s_que=&field=&operator=&period=&category_id=
http://okjsp.pe.kr/doc/tomcat/tomcat-4.0-doc/class-loader-howto.html

- 참고 사이트

http://www.phpschool.com
http://www.okjsp.pe.kr
http://www.kimho.pe.kr

제목 : 솔라리스에 apache+tomcat(jsp)+jdbc 2.0(오라클) 또는 jdbc(mysql)사용하기

OS : x86 Solaris 8(10/01)
apache : apache-1.3.24
jdk : 1.3.1
apache-tomcat 연결 모듈 : mod_webapp.so
DB : oracle 8.1.7,mysql-3.23.49 ( 오라클 설치와 mysql설치는 생략)

1. 설치에 필요한 파일 다운로드

apache : http://www.apache.org/dist/httpd/ (apache_1.3.24.tar.gz)
jdk : http://java.sun.com/j2se/1.3/download.html (j2sdk-1_3_1_03-solx86.sh)
jakarta-tomcat(바이너리) : http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/ (jakarta-tomcat-4.0.3.tar.gz)
jdbc 2.0(oracle) : 오라클이 설치되어 있으면 $ORACLE_HOME/jdbc/lib에 있슴(classes12.zip)
참고로 $ORACLE_HOME/jdbc/Readme.txt 를 꼭 읽어보시기 바랍니다.
다운로드 받을수 있는곳 : http://www.hellophp.com
jdbc(mysql) : http://www.mysql.com/downloads/api-jdbc.html (mm.mysql.jdbc-1.2c.tar.gz)
jakarta-tomcat-connectors : http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/src/ (jakarta-tomcat-connectors-4.0.2-01-src.tar.gz)

참고 : jakarta-tomcat-connectors는 소스파일로는 컴파일이 되진 않아 CVS를 사용


2. jdk 설치

솔라리스에는 기본적으로 jdk 1.2.x와 jdk 1.3.x버전이 설치되어 있습니다.
있는것을 그대로 사용하셔도 되지만 저의 경우 다운받은 것을 사용했습니다.
압축 풀기(/usr/local)
# ./j2sdk-1_3_1_03-solx86.sh와 같이 하면 압축이 풀립니다.
# mv j2sdk-1_3_1_03 java
# rm /usr/java(기존에 설치된 jdk삭제, /usr/java1.1에서 링크되어 있슴)
# ln -s /usr/local/java /usr/java로 링크

솔라리스는 기본적으로 본쉘을 사용합니다. 필자의 경우 리눅스에 익숙해서 bash쉘을 설치 사용합니다.
아래의 파일을 열어 다음을 추가
# vi /root/.bash_profile

JAVA_HOME=/usr/java
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

export JAVA_HOME CLASSPATH

# source /root/.bash_profile

테스트

# java -version
java version \"1.3.1_03\"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_03-b03)
Java HotSpot(TM) Client VM (build 1.3.1_03-b03, mixed mode)

위와 같이 나오면 성공


3. apache 설치

# httpd -l
Compiled-in modules:
http_core.c
mod_so.c <== 중요(꼭 있어야 합니다.)

위와 같이 나오면 설치를 안하셔도 됩니다. 아니면 아파치를 동적(DSO)으로 컴파일

다운받은 apache_1.3.24.tar.gz 파일을 압축을 해제한다. 설치옵션은 사용자의 환경에 맞게 추가..
# ./configure --prefix=/usr/local/apache (아파치가 설치될 디렉토리)
--enable-rule=SHARED_CORE
--enable-module=so
# make ; make install


4. jakarta-tomcat 및 mysql jdbc 설치

바이너리 버전이기 때문에 압축을 풀고 환경 설정을 하면 설치 끝
# tar -xvfz jakarta-tomcat-4.0.3.tar.gz
# mv jakarta-tomcat-4.0.3 /usr/local/tomcat

mm.mysql.jdbc-1.2c.tar.gz 파일을 압축해제 한다.
# tar -xvzf mm.mysql.jdbc-1.2c.tar.gz

압축을 풀고 mysql_comp.jar와 mysql_uncomp.jar 파일을 tomcat디렉토리/lib로 복사
# cp mysql_comp.jar mysql_uncomp.jar /usr/lcoal/tomcat/lib


5. apache-tomcat 연결 모듈 설치(mod_webapp.so)
임의의 디렉토리를 만들고 이동
소스를 받는다.
# cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
(Logging in to anoncvs@cvs.apache.org)
CVS password: anoncvs
# cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout jakarta-tomcat-connectors/webapp

위와 같이하면 jakarta-tomcat-connectors/webapp에 소스가 있다

APR (Apache Portable Runtime) sources

# cd ./jakarta-tomcat-connectors/webapp
# cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout apr
# ./support/buildconf.sh
# ./configure --with-apxs=/usr/local/apache/bin/apxs (필자의 경우 /usr/local/apache에 설치)
# make
# pwd
/usr/local/src/jakarta-tomcat-connectors/webapp/apache-1.3

이렇게 하시면 apache-1.3에 mod_webapp.so가 생성되어 있슴
# cp mod_webapp.so /usr/local/apache/libexec 로 복사


6. 아파치 환경설정
httpd.conf를 열어 다음을 추가

LoadModule webapp_module libexec/mod_webapp.so
AddModule mod_webapp.c

WebAppConnection conn warp localhost:8008
WebAppDeploy examples conn /examples
WebAppInfo /webapp-info


7. oracle jdbc 2.0 설치
이거 때문에 삽질 많이 했습니다.
다시한번 http://okjsp.pe.kr/doc/tomcat/tomcat-4.0-doc/class-loader-howto.html 문서를 꼭 읽어보시기 바랍니다.

제일 확실한 방법은 $ORACLE_HOME/jdbc/lib/classes12.zip 파일을 압축을 해제 합니다.
그럼 두개의 디렉토리가 생깁니다. 이것을 다시 jar파일로 압축을 합니다.

# unzip classes12.zip
# ls
javax oracle

# jar cvf classes12.jar javax/ oracle/ 이렇게 하면 classes12.jar 파일 생성
# cp classes12.jar /usr/local/tomcat/common/lib


이제 모든 설치는 끝이 났습니다. 마직막으로 테스트

8. 테스트

먼서 tomcat를 시작한다.
# /usr/local/tomcat/bin/start.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /usr/java

아파치 시작
# /usr/local/apache/bin/apachectl start

웹에서 확인을 한다.

http://domain:8080/

고양이 그림이 나오면 성공. 이렇게 나오면 아파치와 톰켓이 정상적으로 설치된것 입니다.

이제 정말 중요한 jdbc 테스트


============ mysql jdbc 테스트 =============

/usr/local/tomcat/webapps/ROOT에 mysql.jsp라는 파일을 만들고 다음 내용을 입력한다.
참고로 mysql의 사용자 등록 및 테이블 생성은 생략합니다.

필자의 경우 test라는 DB를 생성하고 test라는 사용자와 test라는 패스워드를 입력했습니다.
그리고 test라는 테이블을 만들고 그중 name필드를 10개 가져옵니다.

<%@ page language=\"java\" import=\"java.sql.*\" contentType=\"text/html;charset=KSC5601\" %>
<%
Class.forName(\"org.gjt.mm.mysql.Driver\");

Connection Conn = DriverManager.getConnection(\"jdbc:mysql://localhost/test\",\"test\",\"test\");

Statement stmt = Conn.createStatement();
ResultSet rs = stmt.executeQuery(\"select name from test limit 10\");
if (!rs.next()) {
out.println(\"암것도 없다\");
} else {
while(rs.next()) {
out.println(rs.getString(1));
}
}
stmt.close();
Conn.close();
%>

여기에서 DriverManager.getConnection(\"jdbc:mysql://localhost/test\",\"test\",\"test\")는 아래와 같다.

DriverManager.getConnection(\"jdbc:드라이버://localhost/DB명\",\"DB User\",\"DB Pass\")

웹에서 확인을 한다.
http://domain:8080/mysql.jsp

여기서 필자의 경우 이름이 출력됩니다. \"암것도 없다\" 라든가 이름이 출력되면 성공... 추카추카

==================================================


============ oracle jdbc 테스트 =============

/usr/local/tomcat/webapps/ROOT에 oracle.jsp라는 파일을 만들고 다음 내용을 입력한다.
참고로 oracle의 사용자 등록 및 테이블 생성은 생략합니다.

필자의 경우 oracle라는 DB를 생성하고 scott라는 사용자와 tiger라는 기본적인 사용자를 사용했습니다.
DB 생성시 사용자 정의로 생성을 하시면 scott라는 사용자가 생성되지 않습니다.
그리고 아래 BONUS도 사용자 정의로 DB로 생성을 하시면 생성되지 않습니다.

<%@ page language=\"java\" import=\"java.sql.*\" contentType=\"text/html;charset=KSC5601\" %>
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(\"jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:oracle\",\"scott\",\"tiger\");

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(\"select * from BONUS\");

if (rs==null)
{
out.println(\"암것도 없다\");
}
else
{
out.println(\"뭔가 있다\");
}

stmt.close();
conn.close();
%>

여기에서 DriverManager.getConnection(\"jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:oracle\",\"scott\",\"tiger\")는 아래와 같다.

DriverManager.getConnection(\"jdbc:드라이버:thin:@오라클 서버 IP:1521:DB 명\",\"DB User\",\"DB Pass\");

웹에서 확인을 한다.
http://domain:8080/oracle.jsp

여기서 필자의 경우 \"뭔가 있다\"가 출력됩니다. \"뭔가 있다\" 라든가 \"암것도 없다\"가 출력되면 성공.. 추카추카

==================================================

ps. 리눅스에 오라클이 설치되어 있는 시스템이 없어 리눅스에서는 테스트 해보지 않았습니다.
리눅스에서 mysql jdbc를 세팅하는데는 문제가 없습니다.(세팅 성공 했슴)
틀린 부분이 있다면 지적해 주시기 바랍니다.
E-mail : chunbh@bcline.com 으로 보내주시기 바랍니다.
728x90

댓글