Linux WEB

아파치와 tomcat 연동

2008.07.01 02:19

호스트웨이 조회 수:26730

Apache + PHP + mysql + Tomcat

 

 

2008-03-20

Hostway IDC

Sakang Hong



 

1. 테스트 시스템 환경 및 소스 다운로드                                         

 

Redhat 7.3

Kernel 2.6.24.2

Apache 2.2.2

PHP 5.1.6

Mysql 5.0.22

ZendOptimizer 3.0.1

jdk-1_5_0_15-linux-i586.bin

- sun.com 에서 자바 다운로드

jakarta-tomcat-5.0.30.tar.gz

- apache.org 에서 tomcat 다운로드

tomcat-connectors-1.2.26-src.tar.gz

- apache.org 에서 tomcat 다운로드

mysql-connector-java-5.1.6.tar.gz

- mysql.com 에서 jdbc 다운로드

 

* 참고 : mirror.hostway.co.kr 에서 다운로드 가능

 

2. Mysql installation                                                            

 

[root@hostway mysql-5.0.22]# ./configure --prefix=/usr/local/mysql --with-charset=euckr

[root@hostway mysql-5.0.22]# make && make install

 

설치 완료 후 DB install permission 조정

[root@hostway src]# cd /usr/local/mysql/bin

[root@hostway bin]# ./mysql_install_db

[root@hostway src]# cd /usr/local/mysql

[root@hostway mysql]# chown -R mysql.root var

 

데이터베이스 시작

[root@hostway mysql]# /usr/local/mysql/bin/mysqld_safe &

 

 

3. Apache installation                                                                

 

아파치 소스 파일 수정

/server/mpm/prefork/prefork.c

#define DEFAULT_SERVER_LIMIT 256 2048 로 수정

 

/server/mpm/worker/worker.c

#define DEFAULT_SERVER_LIMIT 16 256 으로 수정

 

컴파일

[root@hostway httpd-2.2.2]# ./configure --prefix=/usr/local/apache2 --enable-module=so --enable-shared=max –-enable-rewrite --enable-ssl

[root@hostway httpd-2.2.2]# make && make istall

 

 

conf/extra/httpd-mpm.conf 에서 MaxClients 1024 로 수정

[root@hostway httpd-2.2.2]# /usr/local/apache2/bin/apachectl start

 

*참고 : mod_ssl 2.1.6 OpenSSL 0.8.1b 0.9.1c 버전 사이에서만 동작합니다

 

 

4. PHP & Zend installation                                                     

 

[root@hostway php-5.1.6]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs --enable-sysvshm=yes --enable-sysvsem=yes --enable-debug=no --enable-track-vars=yes --enable-url-fopen-wrapper=yes --with-ttf --with-png-dir=/usr --with-zlib-dir --with-jpeg-dir=/usr --with-gdbm=/usr --enable-ftp --with-tiff-dir=/usr --enable-memory-limit --enable-mbstring --with-expat-dir=/usr --enable-sockets --enable-wddx --with-freetype-dir=/usr --enable-bcmath --enable-mbstr-enc-trans --enable-mbregex --enable-exif --with-gd --enable-gd-native-ttf --enable-gd-imgstrttf --enable-calendar --with-openssl=/usr

 

[root@hostway php-5.1.6]# make && make install

[root@hostway php-5.1.6]# cp -a php.ini-recommended /usr/local/php/lib/php.ini

 

httpd.conf 수정

AddType application/x-httpd-php .php .htm .html

AddType application/s-httpd-php-source .phps

DirectoryIndex index.html index.htm index.php

 

Zend 설치

[root@hostway src]# cd ZendOptimizer-2.6.2-linux-glibc21-i386

[root@hostway ZendOptimizer-2.6.2-linux-glibc21-i386]# sh install.sh

 

*참고 : phpinfo 함수를 실행하여 PHP 페이지가 정상적으로 로딩되는지 확인한 후 다음 작업을 진행한다

 

 

5. java installation                                                             

 

다운로드한 jdk-1_5_0_15-linux-i586.bin 파일을 sh 명령으로 실행하고 라이센스에

동의한다. 실행이 끝나면 jdk1.5.0_15 디렉토리가 생성된다. 이것을 java 로 디렉토리

이름을 변경한다

 

[root@hostway src]# sh jdk-1_5_0_15-linux-i586.bin

[root@hostway src]# mv jdk1.5.0_15 /usr/local/java

 

6. Tomcat installation                                                          

 

소스의 압축을 풀고 디렉토리 이름을 변경한다

[root@hostway src]# tar zxvf jakarta-tomcat-5.0.30.tar.gz

[root@hostway src]# mv jakarta-tomcat-5.0.30 /usr/local/tomcat

 

그 후 /etc/profile 에 자바 환경변수를 설정하고 추가하고 적용

[root@hostway src]# vi /etc/profile

JAVA_HOME=/usr/local/java

CATALINA_HOME=/usr/local/tomcat

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

export JAVA_HOME CATALINA_HOME

[root@hostway src]# source /etc/profile

 

tomcat 을 실행하고 netstat -atn 으로 8080 포트 확인

[root@hostway src]# cd /usr/local/tomcat/bin/

[root@hostway bin]# sh startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JAVA_HOME:       /usr/local/java

[root@hostway bin]# netstat -atn |grep 8080

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN

 

서버아이피:8080 포트에 접속하여 tomcat 페이지가 로딩되는지 확인한다.

 

 

7. tomcat-connector installation                                                

 

Tomcat의 경우 기본적으로 8080포트를 사용한다. 이것을 80포트와 연동 시키기 위해서 tomcat-connector 를 설치 한다.

 

[root@hostway src]# tar zxvf tomcat-connectors-1.2.26-src.tar.gz

[root@hostway src]# cd tomcat-connectors-1.2.26-src/native

[root@localhost native]# sh buildconf.sh (not required unless you are a developer)

[root@hostway native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs

[root@hostway native]# make && make install

 

 

mod_jk.so 모듈이 생성되었는지 확인

[root@hostway apache2]# ls -al /usr/local/apache2/modules/mod_jk.so

-rwxr-xr-x 1 root  root  736022 Mar 14 11:01/usr/local/apache2/modules/mod_jk.so

 

 

아파치 설정 파일에 모듈 추가

LoadModule jk_module        modules/mod_jk.so

 

 

httpd.conf 파일끝에 아래 설정 추가

 

 

JkWorkersFile /usr/local/tomcat/conf/workers.properties

JkLogFile /usr/local/tomcat/logs/mod_jk.log

JkLogLevel info

 

VirtualHost 설정시 아래 부분 추가

JkMount /*.jsp ajp13

JkMount /webapps/* ajp13

JkMount /ROOT/* ajp13

 

workers.properties 을 생성하고 다음 내용을 입력한다.

*참고 : 5.5 버전은 workers.properties 파일이 존재하며 톰캣, 자바 경로만 수정하면 됨

[root@hostway conf]# cd /usr/local/tomcat/conf/

[root@hostway conf]# vi workers.properties

# Start setup file

#

workers.tomcat_home=/usr/local/tomcat

workers.java_home=/usr/local/java

ps=/

worker.list=ajp12, ajp13

 

# Definition for Ajp13 worker

#

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

#

# End setup file

 

 

server.xml 편집

 

[root@localhost htdocs]# vi /usr/local/tomcat/conf/server.xml

<Host name="localhost" appBase="webapps"

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

위 부분을 찾아서 아래 내용 추가

      <Context docBase="/usr/local/apache2/htdocs" path=""/>

 

/usr/local/apache2/htdocs aaa.jsp 테스트 파일 생성(확장자는 jsp 로 해야함)

<%

out.println("Hello, JSP");

%>

 

 

 

8. jdbc installation                                                             

 

압축을 풀고 디렉토리 변경

[root@hostway src]# tar zxvf mysql-connector-java-5.1.6.tar.gz

[root@hostway src]# mv mysql-connector-java-5.1.6 /usr/local/mysql-jdbc

 

jdbc 환경 설정

/etc/profile

export CLASSPATH=$CLASSPATH:/usr/local/mysql-jdbc/mysql-connector-java-5.1.6-bin.jar

sourece /etc/profile

 

자바 코드로 드라이버 로딩 테스트

[root@hostway root]# vi d.java

import java.sql.*;

 

public class d{

        public static void main(String [] args){

 

                String driver = "org.gjt.mm.mysql.Driver";

                String user = "root";

                String pass = "";

                String dbURL = "jdbc:mysql://localhost/mysql";

 

                Connection conn = null;

 

                try {

                        Class.forName(driver);

                        conn = DriverManager.getConnection(dbURL, user, pass);

 

                        System.out.println("Driver found! Connection Good!");

                }catch(ClassNotFoundException cne){

 

                        System.out.println("jdbc driver not founded!");

                }catch(SQLException se){

 

                        System.out.println("sql error: "+se);

 

                }

 

        }

}

 

javac d.java 명령으로 컴파일하면 d.class 가 생성된다.

 

java d 명령 실행하여 아래와 같이 메시지를 출력하면 성공

[root@hostway root]# java d

Driver found! Connection Good!

 

"jdbc driver not founded!" 라고 나오면 mysql 에 정상적으로 접속하지 못하는것이다.