APPLICATION2006. 4. 26. 08:43
반응형

기준문서 : http://blog.naver.com/BlogMain.nhn?blogId=deepinheart&Redirect=Dlog&Qs=/deepinheart/20000783931"
기준문서 : http://www.superuser.co.kr/open_lecture/solaris/ - 살짝 변형본.
참조문서 : http://blog.naver.com/7loveletter7.do?Redirect=Log&logNo=5128261

# 계획
 java        : /usr/local/java
 apache      : /usr/local/apache2
 tomcat      : /usr/local/tomcat
 oracle      : /oracle
 주 디렉토리 : /export/home/sean/webapps/cwXXXX  : 협의

#작업 순서
 1. java설치.
 2. 준비작업 패키지 설치.
 3. apache 설치.
 4. tomcat 설치.
 5. mod_jk2.so 로 apache와 tomcat 연결.

#준비물
  http://sunfreeware.com/ 에서 패키지 준비.
 gcc-3.4.2-sol9-intel-local.gz   : 3.1 gcc설치 참조.
 arc-5.21e-sol9-intel-local.gz
 autoconf-2.59-sol9-intel-local.gz
 automake-1.9-sol9-intel-local.gz
 binutils-2.9.1.tar.gz
 libiconv-1.8-sol9-intel-local.gz
 libtool-1.5-sol9-intel-local.gz
 m4-1.4.2-sol9-intel-local.gz
 tar-1.15.1-sol9-intel-local.gz
        - gunzip ~.gz   -> tar xvf ~.tar -> pkgadd -d ~
 - tar xvfz ~gz                   -> pkgadd -d ~


#1. java설치 : java버전을 확인한 결과 버전이 높아 수정하지 않고,
 각 쉘에 JAVA_HOME,CLASSPATH를 설정.
 1. 디폴트 설치(솔라리스9i) 자바 확인. java -version
  bash-2.05$ java -version
   java version "1.4.2_08"
   Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
   Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)
   bash-2.05$
  bash-2.05$ pwd
   /usr/java/lib
 2. root 및 sean(작업계정) 쉘 스크립트 1차 생성.
  #vi /etc/passwd 에서 sh => bash 로 수정.
  #vi .bash_profile
   stty istrip
   JAVA_HOME=/usr/java
   CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

   export JAVA_HOME CLASSPATH
   export PATH="$PATH:$JAVA_HOME/bin

        - 참조1 : java 설치.
 J2SE Install : http://www.superuser.co.kr/open_lecture/solaris/

2. 각종 pkg를 설치한다. 이 설치를 모두(?)해두어야 다음작업에서 한번에 configure 및 make,make install이 가능하다.

3. tomcat관리자 유저를 생성할 것.(보안상 권고)
 작업을 빨리하기 위해서 일단 root로 하고 생략했음.
 나중에 apache/log , work폴더의 권한 부분 수정이 생길 것이다.


# jdk, 톰켓 연결설정
# JDK
# Tomcat ENV
LANG=en_US
JAVA_HOME=/usr/local/java
TOMCAT_HOME=/usr/local/tomcat
PATH=$PATH:/usr/local/tomcat/bin:/usr/local/java/bin:/usr/local/apache/bin:/usr/local/mysql/bin
CLASSPATH=/usr/local/tomcat/common/lib/servlet.jar:/epersdata/lib/classes12.zip:/epersdata/WEB-INF/classes
export LANG JAVA_HOME TOMCAT_HOME PATH CLASSPATH
-> 작업중.

4. 아파치 설치
  4.1 설치
 #  tar xvfz httpd-2.0.55.tar.gz
 #  cd httpd-2.0.55
 #  ./configure --prefix=/usr/local/apache2
    =>일단생략 --enable-shared=max --enable-rule=SHARED_CORE --enable-module=so
 # make
 # make install

 4.2 httpd.conf 수정
 # /usr/local/apache2/conf # vi httpd.conf
  #ServerName 설정.
  #ServerName www.example.com:80
  ServerName 172.16.30.84:80
  
  #아파치를 실행할 유저와 그룹을 설정 및 기본 한글 등록.
  #Group #-1
  Group nobody
  AddDefaultCharSet EUC-KR
  DefaultLanguage euc_kr
  </IfModule>
  </IfModule>

 4.3 아파치 동작 확인 작업
  # /usr/local/apache2/bin/httpd -t
  Syntax OK
  # /usr/local/apache2/bin # httpd -l
  Compiled in modules:
    core.c     mod_access.c     mod_auth.c
    mod_include.c    mod_log_config.c   mod_env.c
    mod_setenvif.c   prefork.c    http_core.c
    mod_mime.c    mod_status.c    mod_autoindex.c
    mod_asis.c    mod_cgi.c    mod_negotiation.c
    mod_dir.c    mod_imap.c    mod_actions.c
    mod_userdir.c    mod_alias.c
    mod_so.c   <- 이것이 있어야 한다.
 4.4 apache동작확인.
 # /usr/local/apache2/bin # apachectl start
 :참조-에러시 # vi /usr/local/apache2/logs/error_log

  # 연결확인.
  웹에서 http://172.16.30.84/ 확인 => 톰캣이 나오면 성공.
  또는
  sean@casdev2 ~ $ telnet localhost 80
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  ^C
  Connection to localhost closed by foreign host.

 4.5 apachectl stop

5. mod_jk2
   : 참조 http://kltp.kldp.org/stories.php?story=04%2F01%2F07%2F5551551&topic=2
   : 참조 http://www.joinc.co.kr/modules/moniwiki/wiki.php/pa_mod_jk2

 1. 다운로드
 tar xvfz jakarta-tomcat-connectors-1.2.14.1-src.tar.gz
 2. 다음부터의 작업 디렉토리
    cd ~~ /jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2 
 2. configure를 수행한다. 옵션은 참조를 볼것. 
 #  # ./configure --with-apxs2=/usr/local/apache2/bin/apxs
 3. # make
 #~~/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2/ # ls  -> mod_jk2.so 만들어진다.
 4. mod_jk2.so 를 apache module로 move
 #~~/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2 # cp mod_jk2.so /usr/local/apache2/modules/mod_jk2.so
 
 5. # vi /usr/local/apache2/conf/httpd.conf 아래 추가.
  LoadModule jk2_module modules/mod_jk2.so

6. 톰캣 설치
 6.1 톰캣 설치
 #tar xvfz jakarta-tomcat-5.0.28.tar.gz
  .....
  tar: A lone zero block at 82109
 # mv jakarta-tomcat-5.0.28 /usr/local/tomcat/

 6.2 톰캣 환경설정 : server.xml의 원본 백업 => server.xml.ori.bak
 # /usr/local/tomcat/conf #vi server.xml
 ############### server.xml[웹에서 다운]: http://www.superuser.co.kr/open_lecture/solaris/ #########
 <Server port="8005" shutdown="SHUTDOWN" debug="0">

  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>

  <GlobalNamingResources>
   <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

   <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase"
    description="User database that can be updated and saved">
   </Resource>

   <ResourceParams name="UserDatabase">
    <parameter>
     <name>factory</name>
     <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    </parameter>
    <parameter>
     <name>pathname</name>
     <value>conf/tomcat-users.xml</value>
    </parameter>  
   </ResourceParams>
  </GlobalNamingResources>

  <Service name="Catalina">
   <Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
   <Engine name="Catalina" defaultHost="localhost" debug="0">
    <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase"/>
    
    <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
     <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/>
    </Host>
   </Engine>
  </Service>
 </Server>

 6.3. jk2.properties 맨 아래 추가.
 # vi /usr/local/tomcat/conf/jk2.properties
 handler.list=channelSocket,request
 channelSocket.port=8009
 apr.jniModeSo=inprocess


 6.4. workers2.properties 신규 작성.
 :workers2.properties는 apache가 어떤 디렉토리에서 어떤 파일을 읽었을때 apache가 그것을 처리하지 않고 톰캣으로 넘어가도록 하는 파일이다.
 이 파일을 apache에서 어떤 파일을 tomcat으로 처리하게 할지를 설정하는 파일이다. 위치는 위의 httpd.conf에서 경로를 적어주므로 특별히 상관이 없으나 관리의 편의성을 위하여 apache환경설정파일과 같이 두면된다.
  #작업중 백업해 두었음.
  #~~/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf# cp workers2.properties /usr/local/apache2/conf/workers2.properties
  # ~/usr/local/apache2/conf # mv workers2.properties workers2.properties.ing2 : 위에서 카피한 원본은 백업하고.
 #  vi /usr/local/apache2/conf/workers2.properties
  [channel.socket:localhost:8009]
  info=Ajp13 forwarding over socket
  tomcatId=localhost:8009
  [uri:/tomcat-docs/*]
  [uri:/jsp-examples/*]
  [uri:/servlets-examples/*]
  [uri:/cwhanjin/*]                   <------- tomcat/webapps/cwhanjin 으로 소스올리고.
  # http://domain.com/jsp 에서 처리되는 파일중 *.jsp 를 Tomcat 으로 처리하고 싶을때
  [uri:/jsp/*.jsp]
  # http://domain.com/abc 에서 처리되는 파일을 모두 Tomcat 으로 처리하고 싶을때
  [uri:/abc/*]
  [shm:]
  disabled=1
         #[uri:www.test.com/app/*] -> 톰캣에서 app라는 context를 사용할 경우 설정시켜야 함.
  #worker=ajp13:localhost:8009
  
  uri는 톰캣의 server.xml파일의 내용과 일치하여야 한다

 6.5 디렉토리 권한을 맞춘다.
  유저를 생성하였다면...
  chown -R tomcat:user /usr/local/tomcat/logs
  chown -R tomcat:user /usr/local/tomcat/work
 # /usr/local/tomcat # ls -al
 총 78
 drwxr-xr-x  11 root     other        512 11월  1일  14:33 .
 drwxr-xr-x  12 root     other        512 11월  1일  15:01 ..
 -rw-r--r--   1 root     root       11357 2004년  8월 29일 LICENSE
 -rw-r--r--   1 root     root         505 2004년  8월 29일 NOTICE
 -rw-r--r--   1 root     root        9002 2004년  8월 29일 RELEASE-NOTES
 -rw-r--r--   1 root     root        5887 2004년  8월 29일 RUNNING.txt
 drwxr-xr-x   2 root     root        1024 11월  1일  02:12 bin
 drwxr-xr-x   5 root     root         512 2004년  8월 29일 common
 drwxr-xr-x   3 root     root         512 11월  1일  22:05 conf
 drwxr-xr-x   2 root     root         512 2004년  8월 29일 logs
 drwxr-xr-x   5 root     root         512 2004년  8월 29일 server
 drwxr-xr-x   4 root     root         512 2004년  8월 29일 shared
 drwxr-xr-x   2 root     root         512 2004년  8월 29일 temp
 drwxr-xr-x   8 root     root         512 2004년  8월 29일 webapps
 drwxr-xr-x   2 root     root         512 2004년  8월 29일 work
 # /usr/local/tomcat # chmod 777 logs
 # /usr/local/tomcat # chmod 777 work

7. 환경변수 설정 및 테스트

 #vi /etc/profile 추가
 CATALINA_HOME=/usr/local/tomcat
 export CATALINA_HOME

 #vi /etc/profile
 # Tomcat ENV
 LANG=en_US
 JAVA_HOME=/usr/local/java
 TOMCAT_HOME=/usr/local/tomcat
 PATH=$PATH:/usr/local/tomcat/bin:/usr/local/java/bin:/usr/local/apache/bin:/usr/local/mysql/bin
 CLASSPATH=/usr/local/tomcat/common/lib/servlet.jar:/epersdata/lib/classes12.zip:/epersdata/WEB-INF/classes
 export LANG JAVA_HOME TOMCAT_HOME PATH CLASSPATH


 # /usr/local/tomcat/bin # ./catalina.sh start
 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/apache2/bin/# apachectl start

 #적절히 연동이 되었는지 아래 주소로 확인해 봅니다
 doc : http://localhost/tomcat-docs/
 JSP : http://localhost/jsp-examples/
 Servlet : http://localhost/servlets-examples/

 

######## 실패 로그 ########################
 4.0 (주)인터넷에서 참조 문서가 부족하여, 설치했다 지운버전. : 이것과 다음의 httpd의 차이점은 뭐지??
 #  pkgadd -d apache-2.0.54-sol9-intel-local
 #  pkgrm SMCapache
 #  rm -rf ./apache2

 4.1 설치
 #  tar xvfz httpd-2.0.55.tar.gz
 #  cd httpd-2.0.55
 #  ./configure --prefix=/usr/local/apache2
    =>일단생략 --enable-shared=max --enable-rule=SHARED_CORE --enable-module=so
 # make
 # make install

 4.2 apache동작확인.
 # /usr/local/apache2/bin # apachectl start
  httpd: Could not determine the server's fully qualified domain name, using 172.16.30.84 for ServerName
 
 4.3 문제가 발생하여 에러로드 확인결과 다음처럼 group 부분에 설정에 문제 발생.
  # vi /usr/local/apache2/logs/error_log
  [Mon Oct 31 23:22:26 2005] [alert] (22)Invalid argument: setgid: unable to set group id to Group 4294967295
  [Mon Oct 31 23:22:26 2005] [alert] (22)Invalid argument: setgid: unable to set group id to Group 4294967295
 ->httpd.conf 수정
 # /usr/local/apache2/conf # vi httpd.conf
  #ServerName 설정.
  #ServerName www.example.com:80
  ServerName 172.16.30.84:80
  
  #아파치를 실행할 유저와 그룹을 설정 및 기본 한글 등록.
  #Group #-1
  Group nobody
  AddDefaultCharSet EUC-KR
  DefaultLanguage euc_kr
  </IfModule>
  </IfModule>
 4.4 아파치 동작 확인 작업
  # /usr/local/apache2/bin/httpd -t
  Syntax OK
  # /usr/local/apache2/bin # httpd -l
  Compiled in modules:
    core.c     mod_access.c     mod_auth.c
    mod_include.c    mod_log_config.c   mod_env.c
    mod_setenvif.c   prefork.c    http_core.c
    mod_mime.c    mod_status.c    mod_autoindex.c
    mod_asis.c    mod_cgi.c    mod_negotiation.c
    mod_dir.c    mod_imap.c    mod_actions.c
    mod_userdir.c    mod_alias.c
    mod_so.c   <- 이것이 있어야 한다.

  # 연결확인.
  웹에서 http://172.16.30.84/ 확인 => 톰캣이 나오면 성공.
  또는
  sean@casdev2 ~ $ telnet localhost 80
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  ^C
  Connection to localhost closed by foreign host.

 4.5  mod_jk2 를 카피(이미 솔라리스용으로 만들어진 so 파일을 이용)
 # tar xvfz jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43.tar.gz
 # ls
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/README.html
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/mod_jk2-2.0.43.so.asc
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/mod_jk2-2.0.43.so
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/jkjni.so.asc
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/jkjni.so
 # ls /usr/local/apache2/modules 아래에 jk2.so를 카피한다.
  httpd.exp <- 현재 는 1개.
 # cp  mod_jk2-2.0.43.so /usr/local/apache2/modules/

 4.5톰캣 설치하고, ..

 4.6
 # apachectl start 에서 mod를 load하지 못했다.
 ::에러때문에 다시작업 ->mod만들기.
 :http://kltp.kldp.org/stories.php?story=04%2F01%2F07%2F5551551&topic=2 기준참조
 #/usr/local/apache2/bin # ./apachectl start
  Syntax error on line 1045 of /usr/local/apache2/conf/httpd.conf:
  Cannot load /usr/local/apache2/modules/mod_jk2-2.0.43.so into server: ld.so.1: httpd: \xc4\xa1\xb8\xed\xc0\xfb: /usr/local/apache2/modules/mod_jk2-2.0.43.so: \xc0\xdf\xb8\xf8\xb5\xc8 ELF \xb5\xa5\xc0\xcc\xc5\xcd \xc7\xfc\xbd\xc4: ELFDATA2MSB

 상단에 mod를 다운받지 않고, 컴파일해서 만드는 것으로 수정.

반응형

'APPLICATION' 카테고리의 다른 글

리눅스 시스템 시간동기화 하기 ( rdate, ntp )  (0) 2007.11.11
IP Aliasing  (0) 2006.10.11
리눅스 톰캣 아파치 설치  (0) 2006.04.26
솔라리스5.6 에서 톰캣 5.0 설치 하기..  (0) 2006.04.26
Tomcat이란  (0) 2006.04.25
Posted by [PineTree]