서울
시립대학교 컴퓨터 과학부 |
|
박종욱 |
niceilm@gmail.com |
박상현 |
|
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 |
설치 모듈 |
비고사항 |
Apache |
Web Server를 설치합니다. |
JDK |
Java를 설치합니다. |
Tomcat |
Tomcat을 설치합니다. |
JK-Connector |
Apache와 Tomcat 연동을 위한
모듈 설치합니다. |
Oracle |
Database Server에 Oracle 설치합니다. |
Oracle + JSP 연동 |
JSP 에서 원견 Oracle Server에 연결하는 과정입니다. |
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
1. http://java.sun.com
에서 솔라리스용 jdk 1.6 을 다운로드 받는다.
# 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
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/
설치 확인
솔라리스용으로 컴파일된 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 파일은 톰캣에서 처리해서 아파치에게 보내줍니다.
다른 파일로 첨부
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
위의 방법이 속도면에서 더 빠르다고 합니다.
3. 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; } } |
4. 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> |