******** 설치환경 ************************************************************
os : Ledhat Linux 7.2 (Kernel 2.4.2)
system : Pentium III 866 / 512M Memory / IBM IDE 30G 7200RPM
******** 설치에 필요한 파일 **************************************************
mysql-3.23.49.tar.gz
apache_1.3.24.tar.gz
php-4.2.1.tar.gz
ZendOptimizer-1[1].3.0-Linux_glibc21-i386.tar.gz
jakarta-tomcat-3.3.1.tar.gz
mod_jserv.so
j2sdk-1_3_1_03-linux-i386.bin
mm.mysql-2.0.4-bin.jar
*****************************************************************************
위 파일들의 버전은 좀 더 상위버젼이거나 하위버젼이어도 상관없겠지만, 설치방법이 틀려질 수 있다는 점을 유의하여 주세요.
그리고 설치할 때엔 root 권한으로 하셔야 합니다.
그럼, 시작해 볼까요??
*****************************************************************************
1. 설치에 필요한 파일을 다운로드 합니다.
*****************************************************************************
위에서 지정한 해당 싸이트에 가셔서 다운로드를 받습니다.
혹시 그 싸이트에 해당버젼이 없을수도 있으니 참고하시기 바랍니다.
/root 밑에 아무 디렉토리나 하나 만들어서 그곳에 저장하시기 바랍니다.
저는 /root 밑에 server 라는 디렉토리를 하나 만들어서 패키지들을 넣었습니다.
*****************************************************************************
2. 리눅스 시스템에 RPM으로 설치되어 있는 패키지가 있으면 제거합니다.
*****************************************************************************
RPM 패키지가 설치되어 있는지 확인하는 방법은 다음과 같습니다.
# rpm -q 패키지명
package apache is not installed
위와 같이 나오면 RPM패키지가 설치되어 있지 않은 겁니다.
만약 해당 패키지가 있다면,
# rpm -e 패키지명 으로 간단하게 지우시면 됩니다.
만약 해당 패키지가 실행중이라면,
# rpm -e 패키지명 --nodeps
--nodeps 옵션은 강제로 지우는 옵션입니다.
*****************************************************************************
3. 다운로드 받은 각 패키지들의 압축을 해제합니다.
*****************************************************************************
# cd /root/server
# tar xvzf mysql-3.23.49.tar.gz
위와 같은 명령으로 mysql의 압축된 패키지를 해제하면 mysql-3.23.49 라는 디렉토리가 생기게 됩니다. 그다음엔 apache_1.3.24.tar.gz 패키지를 해제하세요.
# tar xvzf apache_1.3.24.tar.gz
자, 해제를 하고 나면 apache_1.3.24 라는 디렉토리가 생기지요. 이런식으로 다운로드받은 패키지중에서 압축형식으로 된 파일들을 모두 해제하세요.(jdk 포함)
그리고, 이렇게 해제한 각 패키지들을 다음과 같이 /usr/local 디렉토리로 옮깁니다.
******************************************************************************
4. 압축해제된 패키지들을 /usr/local 밑으로 이동시키기
******************************************************************************
# mv ./apache*/ /usr/local/apache
# mv ./mysql*/ /usr/local/mysql
# mv ./php*/ /usr/local/php
# mv ./Zend*/ /usr/local/zend
# mv ./jdk*/ /usr/local/java
# mv ./jakarta-tomcat*/ /usr/local/jakarta-tomcat
******************************************************************************
5. jdk 1.3.1 설치
******************************************************************************
jdk가 설치되어 있어야, tomcat에서 servlet을 가동시킬 수가 있습니다.
위에서 jdk1.3.1 패키지를 압축을 푼후에 /usr/local/java로 이동시키셨으면 다음과 같이,
# vi /etc/profile 하시고 윗부분에
export JAVA_HOME="/usr/local/java"
export CLASSPATH="."
export PATH=$PATH:$JAVA_HOME/bin
이렇게 쓰신 후, 저장(:wq)하시고 빠져나가면 됩니다.
/etc/profile에 쓰신 부분을 적용시키기 위에선 다음과 같은 명령을 하세요.
# source /etc/profile
모두 하셨으면 jdk 설치가 잘 되었는지 확인해 보세요. 확인하는 방법은,
# java --version
# java
# javac
등의 명령어를 통해 해당 명령에 대한 도움말등이 잘 나오면 성공한 겁니다.
*******************************************************************************
6. mysql 설치 및 환경설정
*******************************************************************************
[1] cd /usr/local/mysql 로 들어갑니다.
[2] # mkdir data 라는 명령어로 디렉토리 하나를 먼저 만들어 줍니다.
[3] 그 다음에 configure 명령을 수행합니다.
수행하는 방법은 다음과 같습니다.
# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
--localstatedir=/usr/local/mysql/data
위의 명령을 두 줄로 쓰는게 아니라 그냥 쭈욱~~ 쓰시면 자동으로 다음칸으로 넘어갑니다.
명령이 넘 길어서...--^
configure 에 대한 옵션값을 다시 보면,
--prefix=/usr/local/mysql
--with-charset=euc_kr
--localstatedir=/usr/local/mysql/data
자 옵셥값을 잘 확인하신 후에 Enter를 치면 configure를 수행합니다.
[4] configure를 모두 수행했으면 다음과 같은 명령을 수행합니다.
# make;make install
[5] 시간이 오래 걸리죠!! 모두 수행하셨으면 여기에서 Mysql 계정을 만들어 줍니다.
# useradd mysql
# passwd mysql
이 계정은 mysql을 위해서 계정 이름만 빌려쓸 뿐 다른 역할은 하지 않으므로, /home 디렉토리에 생긴 mysql 디렉토리를 아예 막아줍니다.
# cd /home
# chmod 000 mysql // 권한을 아무도 사용못하게 해줍니다.
그 다음으로 mysql_db를 생성해줍니다.
# cd /usr/local/mysql/bin
# ./mysql_install_db // MySQL의 데이터를 관리할 기초정보인 테이블 6개를 생성시킵니다. 중요한 것은 반드시 한번만 실행해야 된다는 겁니다.
# chown -R mysql . mysql /usr/local/mysql // /usr/local/ 밑에 생성된 mysql 디렉토리의 소유자와 그룹을 전부 mysql로 바꿔줍니다.
# cd /usr/local/mysql/bin
# ./safe_mysqld --language=korean & // MySQL 데몬을 백그라운드로 시작
# cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld // 데몬을 복사
# chmod 755 /etc/rc.d/init.d/mysqld
# chown mysql.mysql /etc/rc.d/init.d/mysqld
# ntsysv 라는 명령어를 수행해서 mysql 에 체크하시면 부팅할 때마다 MySQL 데몬을 자동으로 실행하게 됩니다.
*********************************************************************************
7. php 설치 및 환경설정
*********************************************************************************
php를 설치하기 전에 일단 apache 디렉토리를 풀어놓습니다.
# cd /usr/local/apache 로 갑니다.
# ./configure --prefix=/usr/local/apache
위와 같은 방법으로 아파치의 환경설정만 해 놓습니다.
[1] 그 다음으로 php를 설치합니다.
# cd /usr/local/php 로 갑니다.
# ./configure
--with-apache=/usr/local/apache
--with-mysql=/usr/local/mysql
--with-gd --with-jpeg-dir=/usr
--with-png --with-zlib
--enable-track-vars
--disable-debug
스펠링을 다시 한번 확인 하신 후 엔터를 치세요...
[2] make;make install
모두 설치하셨으면 환경설정을 하셔야 합니다.
# vi /usr/local/php/php.ini-dist // zend를 사용하기 위해서 설정값을 넣습니다.
맨밑에
[Zend]
zend_optimizer.optimization_level=15
zend_extension="/usr/local/zend/ZendOptimizer.so"
라고 추가해 줍니다.
[3] # cp php.ini-dist /usr/local/lib/php.ini 라고 써줘서 복사를 합니다.
*********************************************************************************
8. 아파치 설정
*********************************************************************************
[1] # cd /usr/local/apache 로 갑니다.
[2] # ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE
--enable-module=so --activate-module=src/modules/php4/libphp4.a
====> --enable-rule=SHARED_CORE --enable-modules=so 라고 쓰는 환경설정의 옵셥값은 매우 중요한 부분입니다. 이 부분을 꼭 넣어야 톰켓과 연동을 할 수 있습니다.
[3] configure 가 다 끝났으면 make;make install 까지 해줘서 설치를 마칩니다.
[4] 설치가 끝난후에 아파치의 설정을 해줍니다.(PHP의 동작을 위해)
# cd /usr/local/apache/conf
# vi httpd.conf
로 아파치의 환경설정파일을 연후, 중간쯤에 가면, 아래와 같이 있습니다.
DirectoryIndex index.html index.htm index.php index.php3 index.cgi index.jsp
설정이 안되어 있으면 추가해 주세요. 각 확장자를 인식시키기 위한 설정입니다.
그리고, 좀 더 밑으로 내려가면
#
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
#
AddType application/x-tar .tgz
AddType application/x-httpd-php .php4 .php3 .php .htm .html .phtml .ph .inc
AddType application/x-httpd-php-source .phps
위와 같은 내용이 있는데, 여러분의 파일이 위와 내용이 다르다면 추가해 주세요.
모두 추가했으면 저장하고 나옵니다.
여기까지 아파치 관련 설정은 일단 끝입니다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
지금까지는 아파치와 PHP, MySQL의 연동과정을 알아보았습니다.
이제 톰켓을 설치 해볼까요. 톰켓은 압축만 풀면 설치가 됩니다.
위에서 mv 명령으로 /usr/local/jakarta-tomcat으로 옮겨 놓았으니까 한번 가볼까요 !!
# cd /usr/local/jakarta-tomcat
가셔서 톰켓관련 환경설정을 해보겠습니다.
# vi /etc/profile
로 profile을 연후,
export JAVA_HOME="/usr/local/java"
export CLASSPATH="."
export PATH=$PATH:$JAVA_HOME/bin
export TOMCAT_HOME="/usr/local/jakarta-tomcat" // 톰켓을 위해 새로 써주는 부분
위와 같이 쓰신 후, 저장하고 빠져나옵니다.
# source /etc/profile 하셔서 변경사항을 인식시킵니다.
자 그럼, 톰켓설치와 시작을 위한 환경설정은 끝났습니다.
아파치와 톰켓을 띄워서 브라우저로 제대로 돌아가는지 확인해 보겠습니다.
/usr/local/apache/bin/apachectl start ==> 아파치 시작
/usr/local/apache/bin/apachectl stop ==> 아파치 정지
/usr/local/jakarta-tomcat/bin/startup.sh ==> 톰켓 시작
/usr/local/jakarta-tomcat/bin/shutdown.sh ==> 톰켓 정지
아파치와 톰켓을 시작하는 명령어로 둘 다 띄워 보세요.
그리고 다음과 같이 웹브라우저상에서 확인해 봅니다.
http://localhost/ ==> 아파치 화면이 보입니다.
http://localhost:8080/ ==> 톰켓 화면이 보입니다.
두 화면 다 잘보이면 이제까지의 설정은 이상이 없는 겁니다.
자 그럼 두 서버를 연동해 볼까요...
*********************************************************************************
9. 아파치와 톰켓의 연동
*********************************************************************************
[1] 먼저 아까 받았던 mod_jserv.so 파일을 아파치 디렉토리에 있는 libexec 디렉토리 밑으로 복사합니다.
# cp mod_jserv.so /usr/local/apache/libexec
하신후,
# vi /usr/local/apache/conf/httpd.conf 로 아파치 환경설정 파일을 여신 후에,
파일내용의 맨 마지막 줄에 다음과 같은 내용을 덧붙입니다.
Include /usr/local/jakarta-tomcat/conf/jserv/tomcat.conf
그리고, 파일 윗부분에 DocumentRoot "/usr/local/apache/htdocs"
라고 써진 부분을 다음과 같이 바꿔줍니다.
DocumentRoot "/usr/local/jakarta-tomcat/webapps/ROOT"
이렇게 쓰신 후, 저장하고 빠져나옵니다. 참고로 vi 로 파일을 여신후에 그 파일의 맨 밑으로 가는 방법은 shift + g를 누르면 됩니다.
위에 덧붙인 내용은 아파치의 환경설정파일의 톰켓의 환경설정파일을 붙이겠다는 것이고,
DocumentRoot 의 내용을 바꾼 것은 서버를 스타트 시킨후에 맨 처음으로 보여줄 파일의 경로를 바꿔준것입니다.
모두 끝나셨으면, 테스트를 해봅니다.
http://localhost/ ==> 톰켓화면이 보입니다.
http://localhost:8080/ ==> 톰켓화면이 보입니다.
둘다 고양이가 보이면 성공입니다. 축하합니다.
*********************************************************************************
10. 각종 테스트
*********************************************************************************
[1] php가 정상적으로 작동하는지 테스트를 해봅니다.
# cd /usr/local/jakarta-tomcat/webapps/ROOT
로 이동하신후, 다음과 같은 파일을 만드세요.
# vi test.php
phpinfo();
?>
저장하고 나오셔서 브라우저에서 확인해 보시면 php 관련 정보가 나올겁니다. 만약 위에서 작성한 그대로 찍혀 나오면 실패 ......
[2] 다음으로 jsp가 작동하는지 테스트를 해야 되는데 그 전에 jsp로 mysql을 다루기 위한 연동을 먼저 해보겠습니다.
다운로드 받으신 mm.mysql-2.0.4-bin.jar 파일을 다음 디렉토리로 복사합니다.
# cp mm.mysql-2.0.4-bin.jar /usr/local/java/lib
복사하신 다음에 CLASSPATH를 잡아줍니다.
# vi /etc/profile을 여신다음,
export JAVA_HOME="/usr/local/java"
export TOMCAT_HOME="/usr/local/jakarta-tomcat"
export CLASSPATH="./:$JAVA_HOME/lib/tools.jar:$TOMCAT_HOME/lib/
common/servlet.jar"
export PATH=$PATH:$JAVA_HOME/bin
위와 같이 써주시면 됩니다. 위에서 profile 추가내용은 최종적인 내용이므로 조금 의문점이 있다고 해도 그냥 위에처럼 써주세요. : )
써주신 후에 저장하고 나오셔서 다음과 같이 적용을 시켜줘야 겠지요.
# source /etc/profile
그러면 mysql의 연동, jdbc 드라이버의 설치는 끝났습니다.
그럼 이제 테스트를 해야지요.
연동사항을 테스트하기 위해 mysql에 사용자, DB를 만들고 table과 값을 넣어줘서 web에서 그 값이 나오는지 확인해봐야 합니다.
잘 따라 해보세요.
먼저 mysql에 접속을 합니다.
# cd /usr/local/mysql/bin
# ./mysql -u root -p
passwd : ********
이런식으로 mysql에 접근을 합니다. 그런 다음,
mysql> use mysql;
mysql> insert into user(host,user,password) values('localhost','jdbc',password('1234'));
이렇게 써주시면 java 라는 사용자에 1234라는 비밀번호가 적용되는 겁니다.
mysql> create database java;
testdb 라는 DB를 하나 만들어주고,
mysql> insert into db values('localhost','testdb','y','y','y','y','y','y','y','y','y','y');
DB 값을 넣어주고,
mysql> flush privileges;
리프레싱을 시켜 적용을 시켜줍니다.
mysql> use testdb;
mysql> create table mytest(myword varchar(10));
mysql> insert into mytest values('success');
testdb 라는 DB에 mytest 라는 TABLE을 만들고 success 라는 값을 넣어줍니다.
mysql> exit
이렇게 MySQL에서의 작업이 끝났으면 톰켓과 아파치를 재시작합니다.
아참, 그리고 MySQL은 현재 가동되고 있는 상태라는 것을 잊지마세요.
그럼, ROOT 디렉토리에 테스트파일을 하나 만들어 볼까요.
# cd /usr/local/jakarta-tomcat/webapps/ROOT
# vi test.jsp
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=euc-
kr" %>
<%
Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://localhost/java";
Connection Conn = DriverManager.getConnection(url,"jdbc","1234");
Statement stmt = Conn.createStatement();
ResultSet rs = stmt.executeQuery("select myword from mytest");
if(!rs.next()){
System.out.println("Nothing");
} else {
String show = rs.getString(1);
%>
<%
}
stmt.close();
Conn.close();
%>
phplogo
이렇게 쓰고 난후, 저장하고 빠져나옵니다. 그리고, 웹브라우저상에서 확인해 보세요.
http://localhost/test.jsp
웹브라우저상에 success 라고 찍히고 하단에 phplogo 라는 문자가 링크되어 있으면
성공한 겁니다.
모든 분들의 성공을 빌겠습니다.
자 그럼, 이제 마지막으로 아파치를 통해 서비스되던 버츄얼호스팅을 톰켓을 통해 하는 방법을 살펴봅시다. 아파치와 톰켓을 연동하면 버츄얼호스팅은 아파치에서 안되고 톰켓을 통해 됩니다. 문서자료를 보니 tomcat-3.2.x 버전부터 버츄얼호스팅을 지원한다는 군요.
*********************************************************************************
11. 아파치와 톰켓의 연동에 따른 버츄얼호스팅의 문제 해결
*********************************************************************************
제가 이 글 맨위에서 말씀드렸듯이 각 파일들의 버전에 따라서 환경설정값들은 변할 수가 있으니 그 점 잊지 말아주세요. 그리고 tomcat-4.0.x 버전부터는 설치부터 환경설정까지 거의 모든 내용이 변했으니 tomcat-4.0.x를 설치하고 싶으신 분들은 다른 문서를 참고해 주세요.
[1] 우선 아파치 환경설정파일(httpd.conf)에서 버츄얼호스팅 부분을 건드리지 않은 분들은 그냥 그대로 놔두면 됩니다. 가령 아파치를 설치하신후, 위에서 제가 변경하라는 부분만 변경하신 분들은 그냥 그대로 놔두면 된다는 얘기입니다.
기존에 버츄얼호스팅을 통해 서비스를 하거나 여러개의 도메인을 쓰고 계신분들에 한해서,
# vi /usr/local/apache/conf/httpd.conf
환경설정파일을 엽니다. 그리고 거의 맨 밑에를 가보면,
### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
#NameVirtualHost *
NameVirtualHost 192.168.0.1
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
ServerAdmin freebit@yahoo.co.kr
DocumentRoot /home/yahoo/public_html
ServerName yahoo.co.kr
ServerAlias www.yahoo.co.kr kr.yahoo.com
ErrorLog logs/yahoo.co.kr-error_log
CustomLog logs/yahoo.co.kr-access_log common
Include /usr/local/jakarta-tomcat/conf/jserv/tomcat.conf
이런식으로 되어 있을겁니다. 여기에서 맨 밑줄의 Include 부분만 남겨놓고 모두 주석처리 해 줍니다. 맨 밑의 내용은 톰켓과 관련 있는것(위에서 설명했음)이니 제외하고 ..........
주석처리(맨 앞에 #을 붙이면 됩니다.)하면 됩니다.
그리고 저장하고 빠져나옵니다.
[2] 모두 끝나셨나요?? 그럼 다음으로 건들어 줄 파일은 2가지입니다.
바로 tomcat.conf 와 server.xml입니다.
# vi /usr/local/jakarta-tomcat/jserv/tomcat.conf
파일을 엽니다. 여기서 유의할 점은 tomcat-3.2.x 는 tomcat.conf 파일이
/usr/local/jakarta-tomcat/ 밑에 있는데 tomcat-3.3.x 에서는
/usr/local/jakarta-tomcat/jserv/ 밑에 있다는 점입니다.
tomcat.conf 의 맨 밑에 다음과 같이 작성을 합니다.
######################### Virtual Hosts ############################
NameVirtualHost 192.168.0.1
ServerAdmin freebit@empas.com
DocumentRoot /usr/local/jakarta-tomcat/webapps/ROOT
ServerName empas.com
ServerAlias www.empas.com
ErrorLog logs/empas.com-error_log
CustomLog logs/emps.com-access_log common
Order allow,deny
deny from all
ServerAdmin freebit@yahoo.co.kr
DocumentRoot /home/yahoo/public_html
ServerName yahoo.co.kr
ServerAlias www.yahoo.co.kr kr.yahoo.com
ErrorLog logs/yahoo.co.kr-error_log
CustomLog logs/yahoo.co.kr-access_log common
Order allow,deny
deny from all
위와 같이 작성하셨나요?? 그러면 안되지요... : )
위의 내용은 여러분들의 상황에 맞게 적절히 변경 해 주셔야 한다는 것을 미리 말씀드립니다. 물론 다들 잘 알고 계시겠지만 .....
그럼 다음으로 server.xml 파일을 설정하겠습니다.
[3] 분명히 말씀드리자면 tomcat을 통해 버츄얼 호스팅을 하려면은 tomcat.conf에서 하나 추가해주면 server.xml에서도 분명히 추가를 해줘야 한다는겁니다.
꼭~~~~~ 유념해주세요. 위의 tomcat.conf 에 도메인 2개를 버츄얼호스팅을 통해 정의를 해줬으니 server.xml 에서도 그 도메인 2개에 대한 내용을 정의해줘야 합니다.
# vi /usr/local/jakarta-tomcat/conf/server.xml
파일을 엽니다. 그러면 맨밑부분이 다음과 같습니다.
확인하셨나요? 여기에서 2개의 도메인 yahoo.co.kr 과 empas.com 의 정보를 삽입해줘야 하겠지요.. 다음은 삽입을 해준다음의 맨밑부분의 내용입니다.
empas
yahoo.co.kr
바뀐 부분은 바로.... 가 2번에 걸쳐 정의되었다는 것이지요.
위의 정의내용에서 docBase를 아파치 httpd.conf 파일의 DocumentRoot 로 정의해 놓으면 버츄얼호스팅을 하는 어느 싸이트에서나 jsp를 사용할 수 있게됩니다.
우리는 아파치의 환경설정을 할 때 DocumentRoot를 다음과 같이 정의해 놓았지요.
DocumentRoot /usr/local/jakarta-tomcat/webapps/ROOT
그래서 docBase 또한 ROOT 가 되는 겁니다.
후우~~~
이 글 쓰느라 무척 힘들었네요...^^;
이글은 제가 참조한 여러싸이트에 차례로 업로드 해놓겠습니다.
또한 이글은 다른 여러문서를 참조한 부분도 있고 제가 작업을 하면서 직접 설정한 부분도 있으므로 실제 적용시에 틀릴수도 있다는 점을 밝힙니다.
작성한 문서중에 틀린내용이 있으면 본싸이트나 mpc.cola.co.kr 의 자유게시판에 리플달아 주세요.
그럼 ... 모두들 성공하시고, 즐겁게 리눅싱~~~~~~~~ ^^*
os : Ledhat Linux 7.2 (Kernel 2.4.2)
system : Pentium III 866 / 512M Memory / IBM IDE 30G 7200RPM
******** 설치에 필요한 파일 **************************************************
mysql-3.23.49.tar.gz
apache_1.3.24.tar.gz
php-4.2.1.tar.gz
ZendOptimizer-1[1].3.0-Linux_glibc21-i386.tar.gz
jakarta-tomcat-3.3.1.tar.gz
mod_jserv.so
j2sdk-1_3_1_03-linux-i386.bin
mm.mysql-2.0.4-bin.jar
*****************************************************************************
위 파일들의 버전은 좀 더 상위버젼이거나 하위버젼이어도 상관없겠지만, 설치방법이 틀려질 수 있다는 점을 유의하여 주세요.
그리고 설치할 때엔 root 권한으로 하셔야 합니다.
그럼, 시작해 볼까요??
*****************************************************************************
1. 설치에 필요한 파일을 다운로드 합니다.
*****************************************************************************
위에서 지정한 해당 싸이트에 가셔서 다운로드를 받습니다.
혹시 그 싸이트에 해당버젼이 없을수도 있으니 참고하시기 바랍니다.
/root 밑에 아무 디렉토리나 하나 만들어서 그곳에 저장하시기 바랍니다.
저는 /root 밑에 server 라는 디렉토리를 하나 만들어서 패키지들을 넣었습니다.
*****************************************************************************
2. 리눅스 시스템에 RPM으로 설치되어 있는 패키지가 있으면 제거합니다.
*****************************************************************************
RPM 패키지가 설치되어 있는지 확인하는 방법은 다음과 같습니다.
# rpm -q 패키지명
package apache is not installed
위와 같이 나오면 RPM패키지가 설치되어 있지 않은 겁니다.
만약 해당 패키지가 있다면,
# rpm -e 패키지명 으로 간단하게 지우시면 됩니다.
만약 해당 패키지가 실행중이라면,
# rpm -e 패키지명 --nodeps
--nodeps 옵션은 강제로 지우는 옵션입니다.
*****************************************************************************
3. 다운로드 받은 각 패키지들의 압축을 해제합니다.
*****************************************************************************
# cd /root/server
# tar xvzf mysql-3.23.49.tar.gz
위와 같은 명령으로 mysql의 압축된 패키지를 해제하면 mysql-3.23.49 라는 디렉토리가 생기게 됩니다. 그다음엔 apache_1.3.24.tar.gz 패키지를 해제하세요.
# tar xvzf apache_1.3.24.tar.gz
자, 해제를 하고 나면 apache_1.3.24 라는 디렉토리가 생기지요. 이런식으로 다운로드받은 패키지중에서 압축형식으로 된 파일들을 모두 해제하세요.(jdk 포함)
그리고, 이렇게 해제한 각 패키지들을 다음과 같이 /usr/local 디렉토리로 옮깁니다.
******************************************************************************
4. 압축해제된 패키지들을 /usr/local 밑으로 이동시키기
******************************************************************************
# mv ./apache*/ /usr/local/apache
# mv ./mysql*/ /usr/local/mysql
# mv ./php*/ /usr/local/php
# mv ./Zend*/ /usr/local/zend
# mv ./jdk*/ /usr/local/java
# mv ./jakarta-tomcat*/ /usr/local/jakarta-tomcat
******************************************************************************
5. jdk 1.3.1 설치
******************************************************************************
jdk가 설치되어 있어야, tomcat에서 servlet을 가동시킬 수가 있습니다.
위에서 jdk1.3.1 패키지를 압축을 푼후에 /usr/local/java로 이동시키셨으면 다음과 같이,
# vi /etc/profile 하시고 윗부분에
export JAVA_HOME="/usr/local/java"
export CLASSPATH="."
export PATH=$PATH:$JAVA_HOME/bin
이렇게 쓰신 후, 저장(:wq)하시고 빠져나가면 됩니다.
/etc/profile에 쓰신 부분을 적용시키기 위에선 다음과 같은 명령을 하세요.
# source /etc/profile
모두 하셨으면 jdk 설치가 잘 되었는지 확인해 보세요. 확인하는 방법은,
# java --version
# java
# javac
등의 명령어를 통해 해당 명령에 대한 도움말등이 잘 나오면 성공한 겁니다.
*******************************************************************************
6. mysql 설치 및 환경설정
*******************************************************************************
[1] cd /usr/local/mysql 로 들어갑니다.
[2] # mkdir data 라는 명령어로 디렉토리 하나를 먼저 만들어 줍니다.
[3] 그 다음에 configure 명령을 수행합니다.
수행하는 방법은 다음과 같습니다.
# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
--localstatedir=/usr/local/mysql/data
위의 명령을 두 줄로 쓰는게 아니라 그냥 쭈욱~~ 쓰시면 자동으로 다음칸으로 넘어갑니다.
명령이 넘 길어서...--^
configure 에 대한 옵션값을 다시 보면,
--prefix=/usr/local/mysql
--with-charset=euc_kr
--localstatedir=/usr/local/mysql/data
자 옵셥값을 잘 확인하신 후에 Enter를 치면 configure를 수행합니다.
[4] configure를 모두 수행했으면 다음과 같은 명령을 수행합니다.
# make;make install
[5] 시간이 오래 걸리죠!! 모두 수행하셨으면 여기에서 Mysql 계정을 만들어 줍니다.
# useradd mysql
# passwd mysql
이 계정은 mysql을 위해서 계정 이름만 빌려쓸 뿐 다른 역할은 하지 않으므로, /home 디렉토리에 생긴 mysql 디렉토리를 아예 막아줍니다.
# cd /home
# chmod 000 mysql // 권한을 아무도 사용못하게 해줍니다.
그 다음으로 mysql_db를 생성해줍니다.
# cd /usr/local/mysql/bin
# ./mysql_install_db // MySQL의 데이터를 관리할 기초정보인 테이블 6개를 생성시킵니다. 중요한 것은 반드시 한번만 실행해야 된다는 겁니다.
# chown -R mysql . mysql /usr/local/mysql // /usr/local/ 밑에 생성된 mysql 디렉토리의 소유자와 그룹을 전부 mysql로 바꿔줍니다.
# cd /usr/local/mysql/bin
# ./safe_mysqld --language=korean & // MySQL 데몬을 백그라운드로 시작
# cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld // 데몬을 복사
# chmod 755 /etc/rc.d/init.d/mysqld
# chown mysql.mysql /etc/rc.d/init.d/mysqld
# ntsysv 라는 명령어를 수행해서 mysql 에 체크하시면 부팅할 때마다 MySQL 데몬을 자동으로 실행하게 됩니다.
*********************************************************************************
7. php 설치 및 환경설정
*********************************************************************************
php를 설치하기 전에 일단 apache 디렉토리를 풀어놓습니다.
# cd /usr/local/apache 로 갑니다.
# ./configure --prefix=/usr/local/apache
위와 같은 방법으로 아파치의 환경설정만 해 놓습니다.
[1] 그 다음으로 php를 설치합니다.
# cd /usr/local/php 로 갑니다.
# ./configure
--with-apache=/usr/local/apache
--with-mysql=/usr/local/mysql
--with-gd --with-jpeg-dir=/usr
--with-png --with-zlib
--enable-track-vars
--disable-debug
스펠링을 다시 한번 확인 하신 후 엔터를 치세요...
[2] make;make install
모두 설치하셨으면 환경설정을 하셔야 합니다.
# vi /usr/local/php/php.ini-dist // zend를 사용하기 위해서 설정값을 넣습니다.
맨밑에
[Zend]
zend_optimizer.optimization_level=15
zend_extension="/usr/local/zend/ZendOptimizer.so"
라고 추가해 줍니다.
[3] # cp php.ini-dist /usr/local/lib/php.ini 라고 써줘서 복사를 합니다.
*********************************************************************************
8. 아파치 설정
*********************************************************************************
[1] # cd /usr/local/apache 로 갑니다.
[2] # ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE
--enable-module=so --activate-module=src/modules/php4/libphp4.a
====> --enable-rule=SHARED_CORE --enable-modules=so 라고 쓰는 환경설정의 옵셥값은 매우 중요한 부분입니다. 이 부분을 꼭 넣어야 톰켓과 연동을 할 수 있습니다.
[3] configure 가 다 끝났으면 make;make install 까지 해줘서 설치를 마칩니다.
[4] 설치가 끝난후에 아파치의 설정을 해줍니다.(PHP의 동작을 위해)
# cd /usr/local/apache/conf
# vi httpd.conf
로 아파치의 환경설정파일을 연후, 중간쯤에 가면, 아래와 같이 있습니다.
DirectoryIndex index.html index.htm index.php index.php3 index.cgi index.jsp
설정이 안되어 있으면 추가해 주세요. 각 확장자를 인식시키기 위한 설정입니다.
그리고, 좀 더 밑으로 내려가면
#
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
#
AddType application/x-tar .tgz
AddType application/x-httpd-php .php4 .php3 .php .htm .html .phtml .ph .inc
AddType application/x-httpd-php-source .phps
위와 같은 내용이 있는데, 여러분의 파일이 위와 내용이 다르다면 추가해 주세요.
모두 추가했으면 저장하고 나옵니다.
여기까지 아파치 관련 설정은 일단 끝입니다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
지금까지는 아파치와 PHP, MySQL의 연동과정을 알아보았습니다.
이제 톰켓을 설치 해볼까요. 톰켓은 압축만 풀면 설치가 됩니다.
위에서 mv 명령으로 /usr/local/jakarta-tomcat으로 옮겨 놓았으니까 한번 가볼까요 !!
# cd /usr/local/jakarta-tomcat
가셔서 톰켓관련 환경설정을 해보겠습니다.
# vi /etc/profile
로 profile을 연후,
export JAVA_HOME="/usr/local/java"
export CLASSPATH="."
export PATH=$PATH:$JAVA_HOME/bin
export TOMCAT_HOME="/usr/local/jakarta-tomcat" // 톰켓을 위해 새로 써주는 부분
위와 같이 쓰신 후, 저장하고 빠져나옵니다.
# source /etc/profile 하셔서 변경사항을 인식시킵니다.
자 그럼, 톰켓설치와 시작을 위한 환경설정은 끝났습니다.
아파치와 톰켓을 띄워서 브라우저로 제대로 돌아가는지 확인해 보겠습니다.
/usr/local/apache/bin/apachectl start ==> 아파치 시작
/usr/local/apache/bin/apachectl stop ==> 아파치 정지
/usr/local/jakarta-tomcat/bin/startup.sh ==> 톰켓 시작
/usr/local/jakarta-tomcat/bin/shutdown.sh ==> 톰켓 정지
아파치와 톰켓을 시작하는 명령어로 둘 다 띄워 보세요.
그리고 다음과 같이 웹브라우저상에서 확인해 봅니다.
http://localhost/ ==> 아파치 화면이 보입니다.
http://localhost:8080/ ==> 톰켓 화면이 보입니다.
두 화면 다 잘보이면 이제까지의 설정은 이상이 없는 겁니다.
자 그럼 두 서버를 연동해 볼까요...
*********************************************************************************
9. 아파치와 톰켓의 연동
*********************************************************************************
[1] 먼저 아까 받았던 mod_jserv.so 파일을 아파치 디렉토리에 있는 libexec 디렉토리 밑으로 복사합니다.
# cp mod_jserv.so /usr/local/apache/libexec
하신후,
# vi /usr/local/apache/conf/httpd.conf 로 아파치 환경설정 파일을 여신 후에,
파일내용의 맨 마지막 줄에 다음과 같은 내용을 덧붙입니다.
Include /usr/local/jakarta-tomcat/conf/jserv/tomcat.conf
그리고, 파일 윗부분에 DocumentRoot "/usr/local/apache/htdocs"
라고 써진 부분을 다음과 같이 바꿔줍니다.
DocumentRoot "/usr/local/jakarta-tomcat/webapps/ROOT"
이렇게 쓰신 후, 저장하고 빠져나옵니다. 참고로 vi 로 파일을 여신후에 그 파일의 맨 밑으로 가는 방법은 shift + g를 누르면 됩니다.
위에 덧붙인 내용은 아파치의 환경설정파일의 톰켓의 환경설정파일을 붙이겠다는 것이고,
DocumentRoot 의 내용을 바꾼 것은 서버를 스타트 시킨후에 맨 처음으로 보여줄 파일의 경로를 바꿔준것입니다.
모두 끝나셨으면, 테스트를 해봅니다.
http://localhost/ ==> 톰켓화면이 보입니다.
http://localhost:8080/ ==> 톰켓화면이 보입니다.
둘다 고양이가 보이면 성공입니다. 축하합니다.
*********************************************************************************
10. 각종 테스트
*********************************************************************************
[1] php가 정상적으로 작동하는지 테스트를 해봅니다.
# cd /usr/local/jakarta-tomcat/webapps/ROOT
로 이동하신후, 다음과 같은 파일을 만드세요.
# vi test.php
phpinfo();
?>
저장하고 나오셔서 브라우저에서 확인해 보시면 php 관련 정보가 나올겁니다. 만약 위에서 작성한 그대로 찍혀 나오면 실패 ......
[2] 다음으로 jsp가 작동하는지 테스트를 해야 되는데 그 전에 jsp로 mysql을 다루기 위한 연동을 먼저 해보겠습니다.
다운로드 받으신 mm.mysql-2.0.4-bin.jar 파일을 다음 디렉토리로 복사합니다.
# cp mm.mysql-2.0.4-bin.jar /usr/local/java/lib
복사하신 다음에 CLASSPATH를 잡아줍니다.
# vi /etc/profile을 여신다음,
export JAVA_HOME="/usr/local/java"
export TOMCAT_HOME="/usr/local/jakarta-tomcat"
export CLASSPATH="./:$JAVA_HOME/lib/tools.jar:$TOMCAT_HOME/lib/
common/servlet.jar"
export PATH=$PATH:$JAVA_HOME/bin
위와 같이 써주시면 됩니다. 위에서 profile 추가내용은 최종적인 내용이므로 조금 의문점이 있다고 해도 그냥 위에처럼 써주세요. : )
써주신 후에 저장하고 나오셔서 다음과 같이 적용을 시켜줘야 겠지요.
# source /etc/profile
그러면 mysql의 연동, jdbc 드라이버의 설치는 끝났습니다.
그럼 이제 테스트를 해야지요.
연동사항을 테스트하기 위해 mysql에 사용자, DB를 만들고 table과 값을 넣어줘서 web에서 그 값이 나오는지 확인해봐야 합니다.
잘 따라 해보세요.
먼저 mysql에 접속을 합니다.
# cd /usr/local/mysql/bin
# ./mysql -u root -p
passwd : ********
이런식으로 mysql에 접근을 합니다. 그런 다음,
mysql> use mysql;
mysql> insert into user(host,user,password) values('localhost','jdbc',password('1234'));
이렇게 써주시면 java 라는 사용자에 1234라는 비밀번호가 적용되는 겁니다.
mysql> create database java;
testdb 라는 DB를 하나 만들어주고,
mysql> insert into db values('localhost','testdb','y','y','y','y','y','y','y','y','y','y');
DB 값을 넣어주고,
mysql> flush privileges;
리프레싱을 시켜 적용을 시켜줍니다.
mysql> use testdb;
mysql> create table mytest(myword varchar(10));
mysql> insert into mytest values('success');
testdb 라는 DB에 mytest 라는 TABLE을 만들고 success 라는 값을 넣어줍니다.
mysql> exit
이렇게 MySQL에서의 작업이 끝났으면 톰켓과 아파치를 재시작합니다.
아참, 그리고 MySQL은 현재 가동되고 있는 상태라는 것을 잊지마세요.
그럼, ROOT 디렉토리에 테스트파일을 하나 만들어 볼까요.
# cd /usr/local/jakarta-tomcat/webapps/ROOT
# vi test.jsp
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=euc-
kr" %>
<%
Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://localhost/java";
Connection Conn = DriverManager.getConnection(url,"jdbc","1234");
Statement stmt = Conn.createStatement();
ResultSet rs = stmt.executeQuery("select myword from mytest");
if(!rs.next()){
System.out.println("Nothing");
} else {
String show = rs.getString(1);
%>
<%= show %>
<%
}
stmt.close();
Conn.close();
%>
phplogo
이렇게 쓰고 난후, 저장하고 빠져나옵니다. 그리고, 웹브라우저상에서 확인해 보세요.
http://localhost/test.jsp
웹브라우저상에 success 라고 찍히고 하단에 phplogo 라는 문자가 링크되어 있으면
성공한 겁니다.
모든 분들의 성공을 빌겠습니다.
자 그럼, 이제 마지막으로 아파치를 통해 서비스되던 버츄얼호스팅을 톰켓을 통해 하는 방법을 살펴봅시다. 아파치와 톰켓을 연동하면 버츄얼호스팅은 아파치에서 안되고 톰켓을 통해 됩니다. 문서자료를 보니 tomcat-3.2.x 버전부터 버츄얼호스팅을 지원한다는 군요.
*********************************************************************************
11. 아파치와 톰켓의 연동에 따른 버츄얼호스팅의 문제 해결
*********************************************************************************
제가 이 글 맨위에서 말씀드렸듯이 각 파일들의 버전에 따라서 환경설정값들은 변할 수가 있으니 그 점 잊지 말아주세요. 그리고 tomcat-4.0.x 버전부터는 설치부터 환경설정까지 거의 모든 내용이 변했으니 tomcat-4.0.x를 설치하고 싶으신 분들은 다른 문서를 참고해 주세요.
[1] 우선 아파치 환경설정파일(httpd.conf)에서 버츄얼호스팅 부분을 건드리지 않은 분들은 그냥 그대로 놔두면 됩니다. 가령 아파치를 설치하신후, 위에서 제가 변경하라는 부분만 변경하신 분들은 그냥 그대로 놔두면 된다는 얘기입니다.
기존에 버츄얼호스팅을 통해 서비스를 하거나 여러개의 도메인을 쓰고 계신분들에 한해서,
# vi /usr/local/apache/conf/httpd.conf
환경설정파일을 엽니다. 그리고 거의 맨 밑에를 가보면,
### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
#NameVirtualHost *
NameVirtualHost 192.168.0.1
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
ServerAdmin freebit@yahoo.co.kr
DocumentRoot /home/yahoo/public_html
ServerName yahoo.co.kr
ServerAlias www.yahoo.co.kr kr.yahoo.com
ErrorLog logs/yahoo.co.kr-error_log
CustomLog logs/yahoo.co.kr-access_log common
Include /usr/local/jakarta-tomcat/conf/jserv/tomcat.conf
이런식으로 되어 있을겁니다. 여기에서 맨 밑줄의 Include 부분만 남겨놓고 모두 주석처리 해 줍니다. 맨 밑의 내용은 톰켓과 관련 있는것(위에서 설명했음)이니 제외하고 ..........
주석처리(맨 앞에 #을 붙이면 됩니다.)하면 됩니다.
그리고 저장하고 빠져나옵니다.
[2] 모두 끝나셨나요?? 그럼 다음으로 건들어 줄 파일은 2가지입니다.
바로 tomcat.conf 와 server.xml입니다.
# vi /usr/local/jakarta-tomcat/jserv/tomcat.conf
파일을 엽니다. 여기서 유의할 점은 tomcat-3.2.x 는 tomcat.conf 파일이
/usr/local/jakarta-tomcat/ 밑에 있는데 tomcat-3.3.x 에서는
/usr/local/jakarta-tomcat/jserv/ 밑에 있다는 점입니다.
tomcat.conf 의 맨 밑에 다음과 같이 작성을 합니다.
######################### Virtual Hosts ############################
NameVirtualHost 192.168.0.1
ServerAdmin freebit@empas.com
DocumentRoot /usr/local/jakarta-tomcat/webapps/ROOT
ServerName empas.com
ServerAlias www.empas.com
ErrorLog logs/empas.com-error_log
CustomLog logs/emps.com-access_log common
Order allow,deny
deny from all
ServerAdmin freebit@yahoo.co.kr
DocumentRoot /home/yahoo/public_html
ServerName yahoo.co.kr
ServerAlias www.yahoo.co.kr kr.yahoo.com
ErrorLog logs/yahoo.co.kr-error_log
CustomLog logs/yahoo.co.kr-access_log common
Order allow,deny
deny from all
위와 같이 작성하셨나요?? 그러면 안되지요... : )
위의 내용은 여러분들의 상황에 맞게 적절히 변경 해 주셔야 한다는 것을 미리 말씀드립니다. 물론 다들 잘 알고 계시겠지만 .....
그럼 다음으로 server.xml 파일을 설정하겠습니다.
[3] 분명히 말씀드리자면 tomcat을 통해 버츄얼 호스팅을 하려면은 tomcat.conf에서 하나 추가해주면 server.xml에서도 분명히 추가를 해줘야 한다는겁니다.
꼭~~~~~ 유념해주세요. 위의 tomcat.conf 에 도메인 2개를 버츄얼호스팅을 통해 정의를 해줬으니 server.xml 에서도 그 도메인 2개에 대한 내용을 정의해줘야 합니다.
# vi /usr/local/jakarta-tomcat/conf/server.xml
파일을 엽니다. 그러면 맨밑부분이 다음과 같습니다.
확인하셨나요? 여기에서 2개의 도메인 yahoo.co.kr 과 empas.com 의 정보를 삽입해줘야 하겠지요.. 다음은 삽입을 해준다음의 맨밑부분의 내용입니다.
empas
yahoo.co.kr
바뀐 부분은 바로
위의 정의내용에서 docBase를 아파치 httpd.conf 파일의 DocumentRoot 로 정의해 놓으면 버츄얼호스팅을 하는 어느 싸이트에서나 jsp를 사용할 수 있게됩니다.
우리는 아파치의 환경설정을 할 때 DocumentRoot를 다음과 같이 정의해 놓았지요.
DocumentRoot /usr/local/jakarta-tomcat/webapps/ROOT
그래서 docBase 또한 ROOT 가 되는 겁니다.
후우~~~
이 글 쓰느라 무척 힘들었네요...^^;
이글은 제가 참조한 여러싸이트에 차례로 업로드 해놓겠습니다.
또한 이글은 다른 여러문서를 참조한 부분도 있고 제가 작업을 하면서 직접 설정한 부분도 있으므로 실제 적용시에 틀릴수도 있다는 점을 밝힙니다.
작성한 문서중에 틀린내용이 있으면 본싸이트나 mpc.cola.co.kr 의 자유게시판에 리플달아 주세요.
그럼 ... 모두들 성공하시고, 즐겁게 리눅싱~~~~~~~~ ^^*
http://jiny.kr/trackback/23


0