[웹서버] 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가 생성이 되는것을 막을수 있습니다.
이런 팁을 리플해 주셨더군여.(구경탁 님의 문서에)