APM + Tomcat 연동하기
# 설치환경
- CentOS 5.x (64bit)
- Apache 2.2.34
- PHP 5.2.17
- Mysql 5.1.59
- APM 설치 디렉토리 : /home/APM 하단에 설치
- JDK : 7u15 / 설치디렉토리 : /home/APM/java
- Tomcat : 7.0.37 / 설치디렉토리 : /home/APM/tomcat
* 설치에 앞서 APM은 이미 다 설치되어 있다고 가정한다. APM 설치 매뉴얼은 하단 링크 참조
링크 : http://help.cafe24.com/cs/cs_faq_list.php?page=5&mode=&s_key=&s_period=&s_value=&faq_list=308&categoryIdx=0
1. JDK 설치 (java 설치)
- yum install java 명령어로 간단히 설치 할 수 있지만, 관리 편의성을 위해 tar.gz 파일로 설치.
- 하단링크로 이동하여 버전에 맞는 Java SE Development Kit 을 다운 받는다.
- 다운 완료 후 서버에 파일을 업로드.
- JDK링크 : http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
[root@server src]# tar zxvf jdk-7u15-linux-x64.tar.gz [root@server src]# mv jdk1.7.0_15 /home/APM/java |
- /etc/profile 파일에 java 경로 및 환경변수를 추가한다.
[root@server src]# vi /etc/profile ------------------------------------------------------------------------------------------------------------------ for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "$PS1" ]; then . $i else . $i >/dev/null 2>&1 fi fi done unset i unset pathmunge # Add timestamp to .bash_history HISTTIMEFORMAT="%Y-%m-%d [%H:%M:%S] " export HISTTIMEFORMAT JAVA_HOME=/home/APM/java PATH="$JAVA_HOME/bin:$PATH" export JAVA_HOME ------------------------------------------------------------------------------------------------------------------ [root@server src]# source /etc/profile |
2. Tomcat 설치
- tomcat 을 다운받아 압축을 풀고 /home/APM/tomcat 디렉토리로 이동한다
- 링크 : http://tomcat.apache.org 에서 Binary Distributions 버전을 다운 받는다.
[root@server src]# tar zxvf apache-tomcat-7.0.37-src.tar.gz [root@server src]# mv apache-tomcat-7.0.37-src /home/APM/tomcat |
- /etc/profile 파일에 tomcat 환경 변수를 추가한다
[root@server src]# vi /etc/profile ------------------------------------------------------------------------------------------------------------------ for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "$PS1" ]; then . $i else . $i >/dev/null 2>&1 fi fi done unset i unset pathmunge # Add timestamp to .bash_history HISTTIMEFORMAT="%Y-%m-%d [%H:%M:%S] " export HISTTIMEFORMAT JAVA_HOME=/home/APM/java PATH="$JAVA_HOME/bin:$PATH" export JAVA_HOME CATALINA_HOME=/home/APM/tomcat PATH=$CATALINA_HOME/bin:$PATH export CATALINA_HOME ------------------------------------------------------------------------------------------------------------------ [root@server src]# source /etc/profile |
- 정상적으로 실행되는지 확인하고 정지한다.
[root@server src]# [root@server src]# [root@server src]# catalina.sh start Using CATALINA_BASE: /home/APM/tomcat Using CATALINA_HOME: /home/APM/tomcat Using CATALINA_TMPDIR: /home/APM/tomcat/temp Using JRE_HOME: /home/APM/java Using CLASSPATH: /home/APM/tomcat/bin/bootstrap.jar:/home/APM/tomcat/bin/tomcat-juli.jar [root@server src]# [root@server src]# [root@server src]# ps -ef | grep tomcat root 18066 1 26 13:05 pts/0 00:00:03 /home/APM/java/bin/java -Djava.util.logging.config.file=/home/APM/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/APM/tomcat/endorsed -classpath /home/APM/tomcat/bin/bootstrap.jar:/home/APM/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/home/APM/tomcat -Dcatalina.home=/home/APM/tomcat -Djava.io.tmpdir=/home/APM/tomcat/temp org.apache.catalina.startup.Bootstrap start root 18121 4786 0 13:05 pts/0 00:00:00 grep tomcat [root@server src]# [root@server src]# [root@server src]# catalina.sh stop Using CATALINA_BASE: /home/APM/tomcat Using CATALINA_HOME: /home/APM/tomcat Using CATALINA_TMPDIR: /home/APM/tomcat/temp Using JRE_HOME: /home/APM/java Using CLASSPATH: /home/APM/tomcat/bin/bootstrap.jar:/home/APM/tomcat/bin/tomcat-juli.jar [root@server src]# |
3. Mysql-Tomcat 연동
- mysql-connector-java 를 설치한다
- mysql과 tomcat 을 연동하기위한 커넥터이다.
- 링크 : http://dev.mysql.com/downloads/connector/j/ 에서 다운 받는다.
- 또는 이곳에서 다운. http://mirror.cogentco.com/pub/mysql/Connector-J/
- 다운 받은 후 tomcat 라이브러리 디렉토리로 복사한다.
[root@server src]# tar zxvf mysql-connector-java-5.1.23.tar.gz [root@server src]# cd mysql-connector-java-5.1.23 [root@server mysql-connector-java-5.1.23]# cp -a mysql-connector-java-5.1.23-bin.jar /home/APM/tomcat/lib/ [root@server mysql-connector-java-5.1.23]# |
4. Apache - Tomcat 연동
- 아파치와 연동하기 위해 tomcat connector를 설치한다.
- 링크 : http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/
[root@server src]# tar zxvf tomcat-connectors-1.2.31-src.tar.gz [root@server src]# cd tomcat-connectors-1.2.31-src/native [root@server native]# ./configure --with-apxs=/home/APM/apache/bin/apxs checking for target platform... unix no apache given no netscape given configure: creating ./config.status config.status: creating Makefile config.status: creating apache-1.3/Makefile config.status: creating apache-1.3/Makefile.apxs config.status: creating apache-2.0/Makefile config.status: creating apache-2.0/Makefile.apxs config.status: creating common/Makefile config.status: creating common/list.mk config.status: creating common/jk_types.h config.status: creating jni/Makefile config.status: creating common/config.h config.status: executing depfiles commands [root@server native]# echo $? 0 [root@server native]# make [root@server native]# echo $? 0 [root@server native]# [root@server native]# [root@server native]# ll ÇÕ°è 1656 -rw-r--r-- 1 root bin 5915 10¿ù 18 2009 BUILDING.txt -rw-r--r-- 1 root bin 65790 10¿ù 22 2010 CHANGES -rw-r--r-- 1 root root 23712 2¿ù 22 15:35 Makefile -rw-r--r-- 1 root bin 1362 10¿ù 22 2010 Makefile.am -rw-r--r-- 1 root bin 23244 10¿ù 22 2010 Makefile.in -rw-r--r-- 1 root bin 25824 10¿ù 22 2010 NEWS -rw-r--r-- 1 root bin 1805 9¿ù 3 2007 README.txt -rw-r--r-- 1 root bin 2211 3¿ù 8 2010 STATUS.txt -rw-r--r-- 1 root bin 13286 3¿ù 8 2010 TODO.txt -rw-r--r-- 1 root bin 261581 10¿ù 22 2010 aclocal.m4 drwxr-xr-x 2 root bin 4096 2¿ù 22 15:35 apache-1.3 drwxr-xr-x 3 root bin 4096 2¿ù 22 15:36 apache-2.0 -rwxr-xr-x 1 root bin 1213 5¿ù 14 2009 buildconf.sh drwxr-xr-x 3 root bin 4096 2¿ù 22 15:36 common -rw-r--r-- 1 root root 55331 2¿ù 22 15:35 config.log -rwxr-xr-x 1 root root 100 2¿ù 22 15:35 config.nice -rwxr-xr-x 1 root root 41698 2¿ù 22 15:35 config.status -rwxr-xr-x 1 root bin 819872 10¿ù 22 2010 configure -rw-r--r-- 1 root bin 25756 10¿ù 22 2010 configure.in drwxr-xr-x 3 root bin 4096 10¿ù 22 2010 docs drwxr-xr-x 4 root bin 4096 10¿ù 22 2010 iis drwxr-xr-x 2 root bin 4096 2¿ù 22 15:35 jni -rwxr-xr-x 1 root root 228737 2¿ù 22 15:35 libtool drwxr-xr-x 2 root bin 4096 10¿ù 22 2010 netscape drwxr-xr-x 2 root bin 4096 10¿ù 22 2010 nt_service drwxr-xr-x 3 root bin 4096 10¿ù 22 2010 scripts [root@server native]# [root@server native]# cd apache-2.0/ [root@server apache-2.0]# ll ÇÕ°è 3152 -rw-r--r-- 1 root root 3176 2¿ù 22 15:35 Makefile -rw-r--r-- 1 root root 1566 2¿ù 22 15:35 Makefile.apxs -rw-r--r-- 1 root bin 1474 10¿ù 21 2010 Makefile.apxs.in -rw-r--r-- 1 root bin 3021 10¿ù 21 2010 Makefile.in -rw-r--r-- 1 root bin 7088 10¿ù 22 2010 Makefile.vc -rw-r--r-- 1 root bin 6590 9¿ù 3 2007 NWGNUmakefile -rw-r--r-- 1 root bin 10243 6¿ù 22 2007 bldjk.qclsrc -rw-r--r-- 1 root bin 11089 6¿ù 22 2007 bldjk54.qclsrc -rw-r--r-- 1 root bin 1335 9¿ù 14 2010 config.m4 -rw-r--r-- 1 root root 1721532 2¿ù 22 15:36 mod_jk.a -rw-r--r-- 1 root bin 129083 10¿ù 22 2010 mod_jk.c -rw-r--r-- 1 root bin 11395 9¿ù 14 2010 mod_jk.dsp -rw-r--r-- 1 root root 786 2¿ù 22 15:36 mod_jk.la -rw-r--r-- 1 root root 309 2¿ù 22 15:36 mod_jk.lo -rw-r--r-- 1 root root 199248 2¿ù 22 15:36 mod_jk.o -rwxr-xr-x 1 root root 1071864 2¿ù 22 15:36 mod_jk.so [root@server apache-2.0]# [root@server apache-2.0]# cp -a mod_jk.so /home/APM/apache/modules/ [root@server apache-2.0]# |
- httpd.conf 파일에 복사한 mod_jk.so 모듈을 추가한다.
- wokers.properties 파일 부분도 추가한다.
- Directory Index 부분에 index.jsp 를 추가한다
[root@server src]# vi /home/APM/apache/conf/httpd.conf ---------------------------------------------------------------------------------------------------------------- LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule redurl_module modules/mod_url.so LoadModule php5_module modules/libphp5.so LoadModule jk_module modules/mod_jk.so <IfModule mod_jk.c> JkWorkersFile /home/APM/apache/conf/workers.properties </IfModule> <IfModule mod_url.c> CheckURL On </IfModule> <IfModule dir_module> DirectoryIndex index.html index.php index.jsp </IfModule> --------------------------------------------------------------------------------------------------------------- [root@server src]# |
- mod_jk에서 사용하는 workers.properties 파일을 작성한다
[root@server src]# vi /home/APM/apache/conf/workers.properties --------------------------------------------------------------------------------------------------------------- workers.tomcat_home=/home/APM/tomcat workers.java_home=/home/APM/java ps=/ worker.list=ajp13 # Definition for Ajp13 worker worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13 -------------------------------------------------------------------------------------------------------------- [root@server src]# httpd -t Syntax OK [root@server src]# |
5. httpd-vhosts.conf 파일 수정
- JkMount 지시자를 사용해 *.jsp로 오는 요청은 workers.properties에 설정된 ajp13 worker로 보내게 된다.
[root@server src]# vi /home/APM/apache/conf/extra/httpd-vhosts.conf -------------------------------------------------------------------------------------------------------------- # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <VirtualHost *:80> DocumentRoot "/home/APM/apache/htdocs" ServerName x.x.x.x <------ (IP주소 혹은 도메인) ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common ExpiresActive On ExpiresByType image/jpeg "acces plus 1 month" ExpiresByType image/gif "acces plus 1 month" JkMount /*.jsp ajp13 </VirtualHost> ------------------------------------------------------------------------------------------------------------- [root@server src]# |
6. server.xml 파일 수정
- 아파치에서 넘어오는 ajp13 worker 를 처리하기 위해서 tomcat의 server.xml 파일을 수정한다.
- 하단의 <Host>로 시작하는 부분을 자신의 apache vhosts 설정에 맞게 수정해 준다
[root@server src]# vi /home/APM/tomcat/conf/server.xml ------------------------------------------------------------------------------------------------------------- . . . . <Host name="x.x.x.x" appBase="/home/APM/apache/htdocs" unpackWARs="true" autoDeploy="true"> <Context path="/" docBase="webapps" reloadable="true"/> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server> ------------------------------------------------------------------------------------------------------------- [root@server src]# |
7. jsp 동작 확인
- 웹 소스 디렉토리에 테스트용 jsp 파일을 넚고 웹에서 정상 출력되는지 확인해본다.
- 위에서 docBase 를 webapps 라는 디렉토리로 설정했기 때문에 *.jsp 소스는 webapps 디렉토리 하단에 있어야 한다!
webapps 디렉토리가 없다면 appBase 디렉토리 하단에 만들어 주면 된다.
[root@server src]# mkdir /home/APM/apache/htdocs/webapps [root@server src]# cd /home/APM/apache/htdocs/webapps [root@server src]# vi test.jsp -------------------------------------------------------------------------------------------------------------- <html> <head> <title>jsp test</title> </head> <body> <% int sum = 0; for(int i = 0; i <= 100; i++) { sum = sum + i; } %> 1부터 100까지의 합은 <%= sum %>입니다. </body> </html> ---------------------------------------------------------------------------------------------------------------- [root@server src]# |
- http://x.x.x.x/test.jsp 파일을 엑세스 해본다. apache와 tomcat이 정상적으로 설정이 되었다면
"1부터 100까지의 합은 5050 입니다" 라는 페이지가 출력 될 것이다.
'Linux' 카테고리의 다른 글
리눅스 shell sed 명령어 (0) | 2023.01.26 |
---|---|
ISPCONFIG 3 호스팅 패널 설치기 (0) | 2023.01.07 |
yum 사용법 (0) | 2022.05.30 |
CentOS 7 AMP yum 설치 (0) | 2022.02.11 |
리눅스 네트워크 트래픽 모니터링 툴 iftop (0) | 2022.01.18 |
댓글