기준문서 : 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를 다운받지 않고, 컴파일해서 만드는 것으로 수정. |