'62.solaris'에 해당되는 글 2건

  1. 2009.07.07 solaris 10 에 tomcat 설치하기
  2. 2009.07.07 solaris 10 에 oracle 11g 설치
62.solaris2009. 7. 7. 09:37
반응형

윈디하나의 솔라나라: TOMCAT

목차

개요
설치
Java JDK
Tomcat
Tomcat - Connectors
Tomcat - Native library
설정
아파치 웹 서버 설정
톰캣 설정
테스트

개요

  • 아파치 톰캣(Apache Tomcat)은 자바 서블릿과 자바 서버 페이지(JSP)를 구현한 자바 서블릿 컨테이너다.
  • 처음에는 아파치 소프트웨어 재단에서 만든 자카르타 프로젝트에 속해 있었지만, 현재는 톱 레벨 프로젝트로 승격되었다. (자카르타 프로젝트는 아파치 소프트웨어 재단에서 지원하는 오픈 소스 자바 솔루션 프로젝트의 이름이다)
  • 현재 톰캣은 자바 서블릿(Servlet) 2.5 와 자바 서비스 페이지(JSP) 2.1 스펙을 준수한다.
  • 공식 홈페이지: Apache Tomcat
  • 본 문서에서는 아파치 톰캣을 설치하고, 아파치 웹 서버와 연동시키며, 톰캣 네이티브 라이브러리까지 설치하는 것을 다룬다.

설치

  1. Java JDK

    톰캣은 자바로 만들어져 있기 때문에 자바를 설치해야 한다. Java SE Downloads에서 [JDK 6 Update 14]를 받는다. (물론 솔라리스10의 /usr/java 디렉토리에 있는 자바를 사용해도 된다) 여기서는 JDK를 사용했지만 런타임만 필요하다.
    root@wl ~ # cd /usr/local
    root@wl /usr/local # ~/jdk-6u14-solaris-i586.sh
    root@wl /usr/local # ln -s jdk1.6.0_14 java
    root@wl /usr/local # vi /etc/profile
    # for Tomcat
    if [ -d /usr/local/tomcat ]
    then
      PATH=$PATH:/usr/local/tomcat/bin; export PATH;
    fi
    
    # for JAVA
    if [ -d /usr/local/java ]
    then
      PATH=/usr/local/java/bin:$PATH; export PATH;
      JAVA_HOME=/usr/local/java; export JAVA_HOME;
    fi
    root@wl /usr/local # . /etc/profile
    
  2. Tomcat

    톰캣의 설치는 매우 간단하다. 파일을 받아 적당한 디렉토리에 풀어주면 된다.
    root@wl ~ # wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
    root@wl ~ # cd /usr/local
    root@wl /usr/local # tar xvfz ~/apache-tomcat-6.0.20.tar.gz
    root@wl /usr/local # ln -s apache-tomcat-6.0.20 tomcat
    root@wl /usr/local # /usr/local/tomcat/bin/startup.sh 1)
    Using CATALINA_BASE:   /usr/local/apache-tomcat-6.0.20
    Using CATALINA_HOME:   /usr/local/apache-tomcat-6.0.20
    Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.20/temp
    Using JRE_HOME:        /usr/local/java
    root@wl /usr/local # 
    
    1) 스크립트를 실행하고 http://localhost:8080 에 접속해보면 아래와 비슷한 화면이 나온다. 8080 포트가 아닌 80 포트로 톰캣을 실행시키려면 /usr/local/tomcat/conf/server.xml 에 8080으로 된 문자를 전부 80으로 바꾸면 되며, 파일 이미지와 JSP파일은 /usr/local/tomcat/webapps/ROOT 아래에 넣으면 된다.
  3. Tomcat - Connectors

    • 톰캣만으로도 웹 서비스를 하는데에는 지장 없지만, 정적 컨텐츠(예를 들어 이미지들)의 효율적인 전송이나 rewrite와 같은 기능, php의 연동을 위해 아파치 웹 서버가 필요할 때가 있다. 웹서비스시, 톰캣은 JSP와 서블릿을 실행하기 위한 용도로만 사용하고, 나머지(이미지 전송, PHP/CGI실행 등등)는 아파치 웹 서버에 맡기는 방법이다. 여기서는 아파치 웹 서버가 /usr/local/apache2 에 설치되었다고 가정한다. 아파치 웹 서버의 설치방법은 윈디하나의 솔라나라: SAMP를 참고한다.
    • 80 포트로 오는 요청은 아파치 웹서버가 받아 처리하는데, JSP/서블릿에 대한 요청은 다시 톰캣에게 주어 톰캣이 처리한 결과를 받아 아파치 웹 서버가 클라이언트에 전송하는 방식이다. 여기서 톰캣과 아파치 웹 서버를 연결해주는 프로토콜은 현재 AJP v1.3이 많이 사용되고 있으며 이를 구현한 것이, mod_jk 이라는 모듈이다.
    • Apache Tomcat - Tomcat Connectors (mod_jk) Downloads
    root@wl ~ # wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz
    root@wl ~ # tar xvfz tomcat-connectors-1.2.28-src.tar.gz
    root@wl ~ # cd tomcat-connectors-1.2.28-src/native
    root@wl ~/tomcat-connectors-1.2.28-src/native # ./configure --with-apxs=/usr/local/apache2/bin/apxs
    root@wl ~/tomcat-connectors-1.2.28-src/native # /usr/sfw/bin/gmake
    root@wl ~/tomcat-connectors-1.2.28-src/native # /usr/sfw/bin/gmake install
    root@wl ~/tomcat-connectors-1.2.28-src/native # cd ../conf
    root@wl ~/tomcat-connectors-1.2.28-src/conf # cp workers.properties /usr/local/tomcat/conf/workers.properties
    
  4. Tomcat - Native library

    톰캣을 실행시킨후 CATALINA_HOME/logs/catalina.out 을 살펴보면 톰캣을 시작할때 아래와 같은 메시지가 나오는 것을 확인할 수 있다.

    정보: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ... (이하생략)

    이 메시지는 톰캣 네이티브 라이브러리를 사용하지 않았을때 나오는 안내문구이다. 성능을 위해서는 네이티브 라이브러리를 사용하라는 것이다. 이는 http://tomcat.apache.org/tomcat-6.0-doc/apr.html 의 문서를 보면 더 많은 정보를 얻을 수 있다. 이 네이티브 라이브러리를 컴파일해 설치하기 위해서는 APR 1.2+(아파치2를 설치할때 같이 설치된다), OpenSSL 0.9.7+, JDK 1.4+ 가 필요하다. 단순히 아래와 같이 설치해주면 된다.
    root@wl ~ # cd /usr/local/tomcat/bin
    root@wl /usr/local/tomcat/bin # tar xvfz tomcat-native.tar.gz
    root@wl /usr/local/tomcat/bin # cd tomcat-native-1.1.14-src/jni/native
    root@wl /usr/local/tomcat/bin/tomcat-native-1.1.14-src/jni/native # ./configure --prefix=/usr/local --with-apr=/usr/local/apache2 1)
    root@wl /usr/local/tomcat/bin/tomcat-native-1.1.14-src/jni/native # make
    root@wl /usr/local/tomcat/bin/tomcat-native-1.1.14-src/jni/native # make install 2)
    
    1) 아파치2의 APR 라이브러리를 사용하고, /usr/local에 설치한다.
    2) 설치한 후, 톰캣을 재시작하면 네이티브 라이브러리를 로드하면서 기동할 것이다.

설정

  1. 아파치 웹 서버 설정

    root@wl ~ # vi /usr/local/apache2/conf/httpd.conf 1)
    LoadModule jk_module modules/mod_jk.so
    JkWorkersFile "/usr/local/tomcat/conf/workers.properties"
    JkLogFile "logs/mod_jk.log"
    JkLogLevel warn
    JkMount /*.jsp ajp13
    root@wl ~ # vi /usr/local/tomcat/conf/workers.properties 2)
    workers.tomcat_home=/usr/local/tomcat
    workers.java_home=/usr/local/jdk
    
    1) 아파치 웹 서버의 설정 파일을 변경한다. 만약 가상 호스트를 사용하고 있다면, [JkMount /*.jsp ajp13]부분은 각각의 가상호스트세팅(<VirtualHost> ~ </VirtualHost>)에 모두 넣어주어야 한다.
    2) JNI를 사용하기 위해서는 반드시 아래 두 태그를 설정해야 한다.
  2. 톰캣 설정

    root@wl ~ # vi /usr/local/tomcat/conf/tomcat-users.xml
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="standard" />
      <role rolename="manager"/>
      <user username="tomcat" password="s3cret" roles="standard,manager"/>
    </tomcat-users>
    root@wl ~ # vi /usr/local/tomcat/conf/server.xml
    <!-- Connector 태그에 URIEncoding="UTF-8" 속성을 추가한다.  -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
    <!-- 아래의 내용을 <Engine>과 </Engine>사이에 넣어야 한다. -->
    <Host name="APACHE_SERVER_NAME" appBase="APACHE_DOCUMENT_HOME"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
    </Host>
    root@wl ~ # mkdir -p APACHE_DOCUMENT_HOME/ROOT/WEB-INF
    root@wl ~ # /usr/local/tomcat/bin/startup.sh
    root@wl ~ # /usr/local/apache2/bin/apachectl restart
    
    3) server.xml을 아파치의 설정에 맞게 바꿔야 한다. APACHE_SERVER_NAME, APACHE_DOCUMENT_HOME은 아파치의 설정에 맞게바꿔야 한다. APACHE_SERVER_NAME은 httpd.conf의 ServerName과 동일하게 해야 하며, APACHE_DOCUMENT_HOME은 httpd.conf의 DocumentRoot와 동일하게 값을 넣어야 한다.

    ※ Context를 정해주지 않으면 400: No Host matches server name xxxx 를 보게 될 것이다. 톰캣 5.5부터 context는 WEB-INF에서 설정할 수 있다.
    ※ http://APACHE_SERVER_NAME/manager/html/ 으로 접속후 tomcat / s3cret 를 사용해 접속하면 톰캣 관리자 페이지가 나온다.

테스트

root@wl ~ # vi $APACHE_DOCUMENT_HOME/ROOT/test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head><title>JSP TEST</title></head>
<body><pre>
클래스경로: <%=System.getProperty("java.class.path",".")%>
라이브러리경로: <%=System.getProperty("java.library.path", ".")%>
파라메터: <%=request.getParameter("param")%> (일치해야함)

파일인코딩: <%=System.getProperty("file.encoding")%>
시스템캐릭터셋: <%=java.nio.charset.Charset.defaultCharset().name()%>
페이지캐릭터셋: <%=response.getCharacterEncoding()%>

서블릿 경로: <%=application.getRealPath("")%>
</pre></body>
</html>
root@wl ~ # http://localhost/test.jsp?param=%ED%95%9C%EA%B8%80 를 확인해보면 된다
Posted by 1010
62.solaris2009. 7. 7. 09:33
반응형
1. 오라클 사이트에서 오라클 10g를 다운로드(2008년1월31일현재 연결됨)


2. 오라클에서 권장하는 사양은 메모리 512MB 이상, 스왑 공간 1GB 이상 필요.

공유메모리와 관련된 시스템 커널 파라메터를 수정한다.

# cd /etc

# mv system system_old

# cp system_old system

# vi system

system 파일의 끝에 추가해 준다.

set noexec_user_stack=1

set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10

system 파일을 수정 저장한 후 시스템을 리부팅한다

# sync; sync; reboot



3. 오라클 계정을 생성한다. 오라클은 root 로 설치할 수 없다.
오라클 설치를 위해 oinstall 그룹, dba 그룹, oracle 유저를 생성한다.

# groupadd oinstall

# groupadd dba

# useradd  -d /export/home/oracle -g oinstall -G dba -m -s /usr/bin/bash oracle

# passwd oracle

(오라클 비밀번호 설정)


4.오라클 계정의 환경 설정.

# /usr/openwin/bin/xhost +   // 디스플레이 활성화
# su - oracle       // 오라클 계정으로 로그인
$ mkdir oraapp     // 오라클 어플리케이션이 설치될 곳.
$ mkdir oradata    // 오라클 데이터가 설치될 곳.
$ chmod -R 755 oraapp
$ vi .profile

DISPLAY=localhost:0.0; export DISPLAY

ORACLE_HOME=/export/home/oracle/oraapp/product/10.2.0; export ORACLE_HOME;
ORACLE_SID=orcl; export ORACLE_SID;
ORACLE_OWNER=oracle; export ORACLE_OWNER;
LNS_LANG=KOREAN_KOREA.KO16MSWIN949; export NLS_LANG;
ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS
PATH=$PATH:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib


수정된 .profile 를 적용한다.
$ source .profile
$ vi .profile





5. 이제 파일의 압축을 풀고 설치 시작.

$ cksum 10gr2_db_sol.cpio.gz
$ gunzip 10gr2_db_sol.cpio.gz
$ cpio -idcmv < 10gr2_db_sol.cpio

$ ./runInstaller 을 해서 오라클 설치를 시작하면 된다.


주의 : 다시 설치해야 할때는 디스 플레이를 다시 활성화를 시켜줘야 한다

# /usr/openwin/bin/xhost +   // 디스플레이 활성화





- 일부 권장사항 검사에 실패하였어도 설치에 문제가 없다.








화면에 나온대로 root 로 로그인한 뒤 스크립트를 실행하고 돌아와서 확인버튼을 클릭한다.

반드시 루트 계정으로 실행한다.

$ su -
# /export/home/oracle/oraInventory/orainstRoot.sh
# /export/home/oracle/oraapp/product/10.2.0/root.sh




데이터베이스 설치중에 에러가 발생함.

시스템은 UTF-8 로 되어있고, oracle 계정의 .profile 에는

NLS_LANG  이 KOREAN_KOREA.K016KSC5601(euc-kr) 로 정의되어 있기 때문이었다.

그래서 재설치를 강행했다.


1.시스템 문자셋 euc-kr 로 변경
- root 로 로그인
# vi /etc/default/init
LANG=ko_KR.UTF-8 을
LANG=ko 로 수정한 후 저장

2.설치된 폴더 삭제

- oracle 계정으로 로그인

- oraInventory 폴더 삭제

$ rm -rf oraInventory
- oraapp 폴더안의 product 폴더 삭제

$ cd oraapp

$ rm -rf product

$ cd ..

3.NLS_LANG 변경
- NLS_LANG 을 KOREAN_KOREA.K016KSC5601 에서
  KOREAN_KOREA.KO16MSWIN949 으로 변경. (표현되는 문자가 더 많다고 해서)
$ vi .profile
..
LNS_LANG=KOREAN_KOREA.KO16MSWIN949
- .profile 적용
$ source .profile

4. 다시 설치 시작
$ ./runInstaller

설치 과정에서 "제품별 필요 조건 검사"에서
"사용 가능한 교체 공간 요구 사항을 확인하는 중..." 에서
예상결과보다 실제결과가 적게 나와서 swap 공간을 늘려 줬다
Posted by 1010