[웹서버] apache2+php+mysql+tomcat 연동

===================================================

                    Apache2.x + PHP + Mysql + Tomcat 연동

===================================================

1. 설치환경

OS : LINUX(RedHat8.0)

Apache : 2.0.44

PHP : 4.3.0

Tomcat : 4.1.18

2. 필요한 파일

http-2.0.44.tar.gz

       –> http://www.apache.org/dist/httpd/http-2.0.44.tar.gz

php-4.3.0.tar.gz(Zend 사용을 위해 4.3.1버젼은 아직 지원 안됩니다.)

       –> http://www.php.net/get/php-4.3.0.tar.gz/from/a/mirror

ZendOptimizer-2.1.0-Linux_glibc21-i386.tar.gz

       –> http://www.zend.com/store/free_download.php?pid=13

mysql-3.23.55-pc-linux-i686.tar.gz

       –> http://www.mysql.com/downloads/mysql-3.23.html

j2sdk-1_4_1_01-linux-i586.bin

       –> http://java.sun.com/j2se/1.4.1/download.html

tomcat-4.1.18.tar.gz

       –> http://jakarta.apache.org/builds/jakarta-tomcat-

4.0/release/v4.1.18/bin/tomcat-4.1.18.tar.gz

tomcat-connectors-4.1.18-src.tar.gz

       –> http://jakarta.apache.org/builds/jakarta-tomcat-

4.0/release/v4.1.18/src/tomcat-connectors-4.1.18-src.tar.gz

3. 설치순서

a. mysql설치

b. apache 설치

c. php 설치

d. tomcat 설치

4. 참고문서

by 구경탁님

->

http://www.javaservice.net/~java/bbs/data/engine/1036132568+/RedHat8_0_Apa

che2_0_40%2BTomcat4_1_12.html

톰캣 연동부분은 거의 이 문서에 의존했습니다.

—————————————————

A. mysql 설치

—————————————————

/usr/local/에 소스를 푼다. (모든 설치는 root 권한으로…)

shell> tar xvfz mysql-3.23.55-pc-linux-i686.tar.gz

그러면 /usr/local/mysql-3.23.55-pc-linux-i686 이라는 디렉이 생깁니다.

./configure 할 필요 없습니다.^^*

# 참고

# ./configure 해줬더니 이런 메세세지가 나옵니다.

# ./configure 할 필요 없답니다.

shell> /usr/sbin/groupadd mysql (그룹추가)

shell> /usr/sbin/useradd -g mysql mysql (사용자추가)

shell> ln -s /usr/local/mysql-3.23.55-pc-linux-i686 /usr/local/mysql (이케 심볼

릭 링크를 해주고)

shell> cd mysql

shell> chown -R root /usr/local/mysql/. (소유자를 바꾼다.)

shell> chown -R mysql /usr/local/mysql/data (소유자를 바꾼다.)

shell> chgrp -R mysql /usr/local/mysql/. (그룹도 바꾸주고)

여기까지 하면 설치 끝…

shell> bin/safe_mysqld –user=mysql & mysql 데몬이 구동된다.

# 참고

# 시작 서비스에 등록할 경우

# shell> cp mysql.server /etc/rc.d/init.d/mysqld

# shell> ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld

# shell> ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S90mysqld

# 이케하고

# shell> /usr/sbin/ntsysv 해서 mysqld 항복에 체크해주면 됩니다. ( [*]mysqld 이렇

게 )

—————————————————-

B. apache 설치

—————————————————-

/usr/local/src에 소스를 푼다.

shell> tar xvfz http-2.0.44.tar.gz

shell> cd httpd-2.0.44

shell> ./configure –prefix=/usr/local/apache (설치 디렉토리)

       –enable-rule=SHARED_CORE (tomcat 연동시 필요)

       –enable-modules=so (tomcat 연동시 필요)

       –enable-so (php 연동시 필요)

       (옵션은 주욱 붙여서 쓰세여. 괄호안 설명이 잘 맞는 지는 잘 몰라여 ^^*)

shell> make

shell> make install

/usr/local/apache 라는 디렉이 생겼을 것입니다.

src 디렉에 있는 소스파일 들은 삭제합니다.

shell> tar xzvf tomcat-connectors-4.1.18-src.tar.gz

shell> cd jakarta-tomcat-connectors-4.1.18-src/jk/native

shell> ./buildconf.sh

shell> ./configure –with-apxs=/usr/local/apache/bin/apxs

shell> make

shell> make install

shell> /usr/local/apache/modules 에

mod_jk.so 이 생깁니다.

—————————————————-

C. php 설치

—————————————————-

/usr/local/src에 소스를 푼다.

shell> tar xvfz php-4.3.0.tar.gz

shell> cd php-4.3.0

shell> ./configure

       –prefix=/usr/local/php

       –with-apxs2=/usr/local/apache/bin/apxs (중요)

       –with-mysql=/usr/local/mysql

       –with-gd

       –with-zlib

       –enable-track-vars=yes (중요: GET, POST, cookie 변수들이 어디서 왔는지 기

억한다고 하네요.)

       –with-mod-charset

       –with-language=korean

       –with-charset=euc_kr

       –disable-debug

       –with-xml

shell> make

shell> make install

/usr/local/php 라는 디렉이 생겼을 것입니다.

/usr/local/src/php-4.3.0 에 보면, php.ini-dist 라는 파일을 다음 처럼 복사 합니다.

shell> cp /usr/local/src/php-4.3.0/php.ini-dist /usr/local/lib/php.ini

다음은 httpd.conf 파일을 수정해 줍니다.(아파치 설치 후 ServerName 설정해 주시는

것 잊으면 안됩니다.)

ServerName 수정해주시고, 아마 수정 없이 아파치를 실행 하셨다면 에러메세지가 보였

을 것입니다. 수정하라고…ㅡ.ㅡ;

-> DirectoryIndex index.html index.php index.phtml index.jsp 시작페이지 설정부분

입니다. 수정해주세여(349 라인정도)

그리고, 아래와 같이 추가해줍니다. (840 라인 즈음에…)

LoadModule php4_module modules/libphp4.so

AddType application/x-httpd-php .php4 .php3 .html .htm .phtml .ph .php

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

자~ 이제 Zend 설치를 할 차례입니다. 아주 간단합니다.

/usr/local/src에 소스를 푼다.

shell> tar xvfz ZendOptimizer-2.1.0-Linux_glibc21-i386.tar.gz

shell> cd Zend* ,로 들어가서

shell> ./install.sh ,해주면 GUI를 가장한(?) 설정 창이 뜹니다.

계속 OK 눌러 주시면 설치가 완료됩니다.

마지막에 나오는 메세지는 “php.ini는 새로 심볼릭 링크 했다. 수정하고 싶으

면 /usr/local/Zend/etc 에있는

php.ini를 해라.”는 것입니다.

여기까지 설치하셨다면 Zend가 설치되면서 아파치가 (재)구동 되었을 겁니다.

아파치 root디렉(디폴트는 /usr/local/apache/htdocs)에 간단한 test파일을 만듭니다.

shell> vi test.php

       <? phpinfo(); ?>

또는,

shell> cat > test.php

<? phpinfo(); ?>

^d

하시면 파일이 만들어 집니다.

브라우져로 위의 파일을 불러오면 (http://localhost/test.php) php환경 문서가 나타납

니다.

——————————————————

D. Tomcat 설치

——————————————————

먼저 jdk를 설치 합니다.

/usr/local에 소스를 푼다.

shell> chmod 755 j2sdk-1_4_1_01-linux-i586.bin

shell> ./j2sdk-1_4_1_01-linux-i586.bin , 마지막에 yes해주시면 자동으로 풀립니다.

shell> ln -s /usr/local/j2sdk1.4.1_01 /usr/local/j2sdk(심볼릭 링크는 더이상 설명 안

하겠음.)

다음은 tomcat

/usr/local에 소스를 푼다.

shell> tar xvfz tomcat-4.1.18.tar.gz

shell> ln -s /usr/local/jakarta-tomcat-4.1.18 /usr/local/tomcat

shell> vi /etc/profile, 파일을 열어서 환경 설정을 해줍니다.

       JAVA_HOME=/usr/local/j2sdk

       CATALINA_HOME=/usr/local/tomcat

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

       export JAVA_HOME CATALINA_HOME

shell> source /etc/profile ,적용

#############################################

# 다음은 구경탁 jinuxer at

koug.net 님의 문서를 참고 했습니다.  #

# “#”가 두 번 있는 것은 주석 부분이니까 혼동 없으시길…       #

# 구경탁 님의 문서를 복사한 부부은 #처리 했습니다.            #

#############################################

# 내용중 다음을 찾아서

# <Server port=”8005″ shutdown=”SHUTDOWN” debug=”0″>

# 밑줄에 다음을 입력한다.

# <Listener className=”org.apache.ajp.tomcat4.config.ApacheConfig” />

# 내용중 다음을 찾아서

# <Host name=”localhost” debug=”0″

appbase=”webapps”>

# 밑줄에 다음을 입력한다.

# <Listener className=”org.apache.ajp.tomcat4.config.ApacheConfig”

append=”true” />

# catalina.sh start

# Tomcat 을 재시작하면,

# /usr/local/tomcat/conf 디렉토리 아래에

# auto 디렉토리와 jk 디렉토리가 생겼을 것이고, auto 아래에 mod_jk.conf가 생겼을것

이다.

# cd /usr/local/tomcat/conf/jk

# 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

/usr/local/tomcat/conf/auto/mod_jk.conf 를 수정해 줍니다. 이 부분이 아주 중요했습

니다.

tomcat을 얹는 순간 php를 인식 못하는 문제가 있었습니다. 아래는 저의 mod_jk.conf파

일  내용입니다.

<IfModule !mod_jk.c>

  LoadModule jk_module modules/mod_jk.so

</IfModule>

<VirtualHost localhost>

    ServerName localhost

    JkMount /*.jsp ajp13

    JkMount /servlet/* ajp13

    JkMount /admin ajp13

    JkMount /admin/* ajp13

    JkMount /webdav ajp13

    JkMount /webdav/* ajp13

    JkMount /examples ajp13

    JkMount /examples/* ajp13

    JkMount /tomcat-docs ajp13

    JkMount /tomcat-docs/* ajp13

    JkMount /manager ajp13

    JkMount /manager/* ajp13

</VirtualHost>

다시 구경탁 님의 문서로 돌아가서,,

# vi /etc/httpd/conf/httpd.conf

# 제일 아래 부분에 아래와 같이 추가해준다.

# default로 인스톨되어 있는 Apache말고 새로 compile하여 install을 한 Apache인 경

우도

# 마찬가지이다.

#

# #Load mod_jk

#

# LoadModule jk_module modules/mod_jk.so

#

# #Configure mod_jk

#

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

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

# JkLogLevel emerg

#

여기서부터,

# #Root context

# JkMount  /*.jsp ajp13

# JkMount  /servlet/* ajp13

여기까지는 추가 하지 마세여!!

# Include /usr/local/tomcat/conf/auto/mod_jk.conf

# koug 라는 컨텍스트를 추가해 보겠다.

# /usr/local/apache/htdocs 디렉토리에 koug 디렉토리를 만든다.

# 주, 원하는 아무 디렉토리에 원하는 이름으로 생성하면 된다.

# cd /usr/local/apache/htdocs

# mkdir koug

# vi /usr/local/tomcat/conf/server.xml

        <!– Define properties for each web application.  This is only needed

             if you want to set non-default properties, or have web application

             document roots in places other than the virtual host’s appBase

             directory.  –>

        <!– Tomcat Root Context –>

        <!–

          <Context path=”” docBase=”ROOT”

debug=”0″/>

        –>

        <!– Tomcat koug Context –>

        <Context path=”/koug”

docBase=”usr/local/apache/htdocs/koug” debug=”0″

                 reloadable=”true”/>

        <!– Tomcat Examples Context –>

        <Context path=”/examples” docBase=”ejinuxer at koug.net

xamples” debug=”0″

                 reloadable=”true” crossContext=”true”>

          <Logger className=”org.apache.catalina.logger.FileLogger”

                     prefix=”localhost_examples_log.” suffix=”.txt”

           timestamp=”true”/>

# 제대로 연동이 되는지 Test를 해보자.

# cp -r /usr/local/tomcat/webapps/examples/* /var/www/koug

# Tomcat과 Apache를 재시동한다.

# http://localhost/koug/jsp/

# http://localhost/koug/servlets/

# 어랏! 포트번호가 빠졌다. 눈치를 챘으리라. -.-+

# Apache와 Tomcat가 연동이 되었다는 증거가 여기서 나오는 것이다.

# 물론, 아래처럼

# http://localhost:8080/koug/jsp/

# http://localhost:8080/koug/servlets/

# 접속을 해도 결과는 마찬가지다. 속이 시원하지 않은가? 으햐햐?w -0-

# 그렇다면, ROOT 의 디렉토리는 어떻게 하면 될까?

# 그렇다. 별문제없이 되리라고 생각이 될것이다. 별반차이가 없다는것이다.

# vi /usr/local/tomcat/conf/server.xml

        <!– Define properties for each web application.  This is only needed

             if you want to set non-default properties, or have web application

             document roots in places other than the virtual host’s appBase

             directory.  –>

        <!– Tomcat Root Context –>

          <Context path=”” docBase=”/usr/local/apache/htdocs”

debug=”0″

reloadable=”true” />

        <!– Tomcat Examples Context –>

        <Context path=”/examples” docBase=”examples”

debug=”0″

                 reloadable=”true” crossContext=”true”>

          <Logger className=”org.apache.catalina.logger.FileLogger”

                     prefix=”localhost_examples_log.” suffix=”.txt”

           timestamp=”true”/>

# cp -r /usr/local/tomcat/webapps/examples/* /usr/local/apache/htdocs

# Tomcat과 Apache를 재시동한다.

# http://localhost/jsp/

# http://localhost/servlets/

# 원하는 결과가 나왔는가?

여기까지 구경탁 님의 문서 였습니다. ^^*

글구 박승원 님께서,

# 우선 위의 tomcat을 실행하면 매번 mod_jk.conf파일이 생성이 됩니다.

# 이때

#

# <Listener className=”org.apache.ajp.tomcat4.config.ApacheConfig” />

# <Listener className=”org.apache.ajp.tomcat4.config.ApacheConfig”

append=”true” />

#

# 이 부분이 server.xml에 아직 있을텐데..이를 코멘트 해주면 편법이지만

# 계속적으로 mod_jk.conf가 생성이 되는것을 막을수 있습니다.

이런 팁을 리플해 주셨더군여.(구경탁 님의 문서에)

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

3 Responses

  1. 2022년 6월 18일

    2interval

  2. 2023년 1월 26일

    2utilities

  3. 2024년 10월 24일

    … [Trackback]

    […] Read More on that Topic: nblog.syszone.co.kr/archives/136 […]

페이스북/트위트/구글 계정으로 댓글 가능합니다.