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 에 정상적으로 접속하지 못하는것이다.


 

번호 제목 글쓴이 날짜 조회 수
83 PHP 컴파일시 에러 메세지가 나오는 경우 조치방법-2 호스트웨이 2012.12.20 7191
82 Alternative PHP Cache 설치 & 설정 호스트웨이 2015.09.18 7566
81 apache 쓸모없는 로그 남기지 않는 방법. 호스트웨이 2012.12.28 7829
80 CentOS6 64bit openssl 설치시 에러 조치사항 호스트웨이 2012.11.02 8697
79 failed to open stream: Too many open files in 에러메시지 출력 시 해결방법 호스트웨이 2012.10.03 8766
78 Indexes 값 제거 호스트웨이 2015.09.18 8956
77 cronlog 설정 호스트웨이 2015.09.18 9123
76 아파치 특정폴더에 암호걸기 호스트웨이 2012.12.28 9272
75 외부 링크 도용을 막기 위한 아파치 설정 호스트웨이 2015.09.11 9517
74 64bit 에서 php 컴파일시 에러 메세지 발생 시 대처방법-3 호스트웨이 2012.12.28 9645
73 웹페이지에 사용자 인증 사용하기 호스트웨이 2012.05.18 9989
72 Ubuntu 아파치 웹서버에서 index.php 다운로드 창이 뜰 경우 호스트웨이 2012.12.13 10020
71 웹부하 테스트 - httperf 호스트웨이 2015.09.18 10063
70 Apache 동시접속자 수 알아내기 호스트웨이 2015.09.13 10378
69 apache 구동시 "파일 크기 제한을 초과함 $HTTPD -DSSL" 에러메시지 출력에 대한 해결방법 호스트웨이 2012.10.11 10475
68 SSL config error 조치사항 호스트웨이 2012.06.29 10717
67 [Apache] Image 관련 Log 남기지 않기 호스트웨이 2012.07.13 10768
66 PHP 업로드 파일 용량 제한 설정 호스트웨이 2012.07.06 11075
65 apache ssl 시작시 오류 메세지 호스트웨이 2012.05.11 11112
64 WEB에 특정 IP접근 차단 호스트웨이 2015.09.10 11264