본문 바로가기
시스템운영

[LINUX] CENTOS APM 설치 작업내용 -1- (20141218)

by 보이드메인 2016. 1. 5.

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



# 설치환경

- 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



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@cafe24 src]# tar zxvf jdk-7u15-linux-x64.tar.gz

[root@cafe24 src]# mv jdk1.7.0_15 /home/APM/java



- /etc/profile 파일에 java 경로 및 환경변수를 추가한다.

[root@cafe24 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@cafe24 src]# source /etc/profile



2. Tomcat 설치

- tomcat 을 다운받아 압축을 풀고 /home/APM/tomcat 디렉토리로 이동한다

- 링크 : http://tomcat.apache.org 에서 Binary Distributions 버전을 다운 받는다.

[root@cafe24 src]# tar zxvf apache-tomcat-7.0.37-src.tar.gz

[root@cafe24 src]# mv apache-tomcat-7.0.37-src /home/APM/tomcat


- /etc/profile 파일에 tomcat 환경 변수를 추가한다

[root@cafe24 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@cafe24 src]# source /etc/profile


- 정상적으로 실행되는지 확인하고 정지한다.

[root@cafe24 src]#

[root@cafe24 src]#

[root@cafe24 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@cafe24 src]#

[root@cafe24 src]#

[root@cafe24 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 1318121  4786  0 13:05 pts/0 00:00:00 grep tomcat

[root@cafe24 src]#

[root@cafe24 src]#

[root@cafe24 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@cafe24 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@cafe24 src]# tar zxvf mysql-connector-java-5.1.23.tar.gz

[root@cafe24 src]# cd mysql-connector-java-5.1.23

[root@cafe24 mysql-connector-java-5.1.23]# cp -a mysql-connector-java-5.1.23-bin.jar /home/APM/tomcat/lib/

[root@cafe24 mysql-connector-java-5.1.23]#


4. Apache - Tomcat 연동

- 아파치와 연동하기 위해 tomcat connector를 설치한다.

- 링크 : http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/

[root@cafe24 src]# tar zxvf tomcat-connectors-1.2.31-src.tar.gz

[root@cafe24 src]# cd tomcat-connectors-1.2.31-src/native

[root@cafe24 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@cafe24 native]# echo $?

0

[root@cafe24 native]# make

[root@cafe24 native]# echo $?

0

[root@cafe24 native]#

[root@cafe24 native]#

[root@cafe24 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@cafe24 native]#

[root@cafe24 native]# cd apache-2.0/

[root@cafe24 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@cafe24 apache-2.0]#

[root@cafe24 apache-2.0]# cp -a mod_jk.so /home/APM/apache/modules/

[root@cafe24 apache-2.0]#


- httpd.conf 파일에 복사한 mod_jk.so 모듈을 추가한다.

- wokers.properties 파일 부분도 추가한다.

- Directory Index 부분에 index.jsp 를 추가한다

[root@cafe24 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@cafe24 src]#



- mod_jk에서 사용하는 workers.properties 파일을 작성한다


[root@cafe24 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@cafe24 src]# httpd -t

Syntax OK


[root@cafe24 src]#


5. httpd-vhosts.conf 파일 수정

- JkMount 지시자를 사용해 *.jsp로 오는 요청은 workers.properties에 설정된 ajp13 worker로 보내게 된다.

[root@cafe24 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 block.

#


  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


-------------------------------------------------------------------------------------------

[root@cafe24 src]#



6. server.xml 파일 수정

- 아파치에서 넘어오는 ajp13 worker 를 처리하기 위해서 tomcat의 server.xml 파일을 수정한다.

- 하단의 로 시작하는 부분을 자신의 apache vhosts 설정에 맞게 수정해 준다

[root@cafe24 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@cafe24 src]#



7. jsp 동작 확인

- 웹 소스 디렉토리에 테스트용 jsp 파일을 넚고 웹에서 정상 출력되는지 확인해본다.

- 위에서 docBase 를 webapps 라는 디렉토리로 설정했기 때문에 *.jsp 소스는 webapps 디렉토리 하단에 있어야 한다!

webapps 디렉토리가 없다면 appBase 디렉토리 하단에 만들어 주면 된다.

[root@cafe24 src]# mkdir /home/APM/apache/htdocs/webapps

[root@cafe24 src]# cd /home/APM/apache/htdocs/webapps

[root@cafe24 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@cafe24 src]#



- http://x.x.x.x/test.jsp 파일을 엑세스 해본다. apache와 tomcat이 정상적으로 설정이 되었다면

"1부터 100까지의 합은 5050 입니다" 라는 페이지가 출력 될 것이다.


댓글