APM 및 Tomcat설치
APM 및 Tomcat설치
OS설치 시 package를 선택하지 않고 소스로 최신 버전을 다운받아 /usr/local/apache2로 위치로 컴파일 해준다. 모든 작업은
root계정으로 진행하며 작업 디렉토리는 mkdir /home/src 만들어서 해당 디렉토리의 소스들을 다운받아 놓고 작업을 진행을 한다.
아파치를 http://www.apache.org에서 최신 버전을 다운받는다.
1.openssl 설치 |
[root@localhost src]# wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz |
[root@localhost src]# tar -zxvf openssl-0.9.8e.tar.gz |
[root@localhost src]# cd openssl-0.9.8e |
[root@localhost openssl-0.9.8e]# ./config --prefix=/usr/local/openssl |
[root@localhost openssl-0.9.8e]#make |
[root@localhost openssl-0.9.8e]#make install |
다운 받은 httpd-2.2.23.tar.gz를 압축을 풀고 설치 한다.
아파치2 컴파일 전에는 항상 worker.c, prefork.c 파일을 수정하여 접근할 수 있는 사용자의 수를 증가 시켜줘야 한다. 차후에 문제가 되어 재컴파일을 해야 할 수도 있으니 항상 확인 해야 한다.
[root@localhost src]# wget http://apache.tt.co.kr/httpd/httpd-2.2.23.tar.gz |
[root@localhost src]# tar -zxvf httpd-2.2.23.tar.gz |
[root@localhost src]# |
vi /home/gihcuser/src/httpd-2.2.23/server/mpm/worker/worker.c |
#ifndef DEFAULT_SERVER_LIMIT |
#define DEFAULT_SERVER_LIMIT 16 #(16 -> 20으로 수정한다) |
[root@localhost src]# |
vi /home/gihcuser/src/httpd-2.2.23/server/mpm/prefork/prefork.c |
#endif |
#ifndef DEFAULT_SERVER_LIMIT |
#define DEFAULT_SERVER_LIMIT 256 #(256 -> 1280으로 수정한다) |
#endif |
[root@localhost src]# ./configure --prefix=/usr/local/apache2 --enable-modules=ssl --enable-modules=so --enable-modules=mos --enable-so --enable-mods-shared=most --enable-ssl --with-ssl=/usr/local/openssl --enable-static-rotatelogs
[root@localhost src]# make
[root@localhost src]# make install
[root@localhost /src]#mkdir /home/httpd/html
[root@localhost /src]#mkdir /home/httpd/cgi-bin
[root@localhost /src]#ln -s /home/httpd/html /home/ftp아이디/public_html
[root@localhost /src]#chown -R ftp아이디:ftp아이디 /home/ftp아이디/
[root@localhost /src]#chmod 711 /home/ftp아이디
[root@localhost /src]#mkdir /var/log/apachelog
[root@localhost httpd-2.2.11]# vi /usr/local/apache2/conf/httpd.conf
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80 #(주석처리를 빼고 업체 도메인으로 수정한다)
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/usr/local/apache2/htdocs" #( 경로를 /home/httpd/html로 수정한다)
# for more information.
#
Options Indexes FollowSymLinks #(Indexes 삭제한다)
#
아파치로그 부분이 많이 쌓이기 때문에 rotatelogs 를 걸어서 200M씩 로그를 분산한다
CustomLog "|/usr/local/apache2/bin/rotatelogs /var/log/apachelog/도메인-access_log.%Y%m%d 200M" common env=!IMAGE
#(수정 전->logs/access_log , 파이프 기호 주의 )
# ErrorLog "/var/log/apachelog/ 도메인-error_log " #( 수정 전 -> logs/error_log ) #
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/" #(수정전 -> "/usr/local/apache2/cgi-bin” )
(수정 전 -> "/usr/local/apache2/cgi-bin” )
시스템이 부팅할 때 apache가 실행 되게하고, daemon을 따로 관리할 수 있도록 /etc/rc.d/rc3.d/S99apache를 symbolic link 로 연결해준다.
[root@ /rc3.d]#ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/rc3.d/S99apache
Mysql 5.1.37으로 인스톨한다. 테스트를 거친 최신 버전으로 설치하도록 한다.}
www.mysql.com 에서 받는다.
디렉토리 지정과 한글을 지정하도록 최소한의 옵션을 지정해 준다.
[root@localhost/src]#wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.37.tar.gz /from/ftp://mysql.byungsoo.net/pub/mysql/
[root@localhost/src]#tar -zxvf mysql-5.1.37.tar.gz
[root@localhost/src]#cd mysql- mysql-5.1.37
[root@localhost / mysql-5.1.37]#./configure --with-charset=euckr --prefix=/usr/local/mysql
[root@localhost /mysql-5.1.37]#make install
[root@localhost /mysql-5.1.37]#./mysql_install_db
useradd -g mysql mysql
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var chgrp -R mysql /usr/local/mysql
MySQL 소스를 풀어둔 디렉토리로 돌아가 MySQL config 파일을 copy 한다. 메모리가 512MB 경우 my-large.cnf,1~2G 경우 my-huge.cnf ,4G 경우 my-innodb-heavy-4G.cnf
cd /home/gihcuser/src/mysql-5.1.37
cp support-files/my-large.cnf /etc/my.cnf
부팅할 때 mysql을 시작시키기 위해서 실행 스크립트를 symbolic link해준다.
[root@www /rc3.d]#ln -s /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/rc3.d/S99mysql
[root@localhost /src]# tar -zxvf php-5.2.8.tar.gz
[root@localhost /src]# cd php-5.2.8
[root@localhost /php-5.2.8]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2
/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-png-dir --with-zlib-dir --with-jpeg-dir --with-kerberos --with-freetype-dir --enable-ftp --enable-sockets
--disable-debug --enable-magic-quotes --enable-gd-native-ttf --enable-dba=shared
[root@localhost /php-5.2.8]# make
[root@localhost /php-5.2.8]# make install
아파치가 2.x 버전이면 --with-apxs 이부분을 --with-apxs2 라고 지정을 해줘야 한다.
자세한 옵션은 .configure --help|more해서 볼 수 있다.
[root@localhost /php-5.2.8]#make install
[root@localhost /php-5.2.8]#cp php.ini-dist /usr/local/lib/php.ini
아파치의 httpd.conf 파일을 편집하여, 아래와 같이 해당라인을 추가한다.
#
AddType application/x-tar .tgz
AddType application/x-httpd-php .php htm ( 한줄을 추가 한다. )
AddType application/x-httpd-php-source .phps (한줄을 추가 한다. )
so파일을 찾을 수 있도록 ld.so.conf의 맨 아래줄에 mysqllib의 디렉터리를 지정해준다.
[root@localhost /html]#vi /etc/ld.so.conf
/usr/local/mysql/lib/mysql
저장하고 나와서 적용 될 수 있도록 ldconfig해준다
[root@localhost /etc] ldconfig
Apache 에서 인식할 수 있도록 Apache 를 재실행 시킨다.
[root@localhost /] /usr/local/apache2/bin/apachectl restart
아래와 같은 간단한 소스를 test.php라는 파일로 /home/httpd/html 안에다 만들어 실행해 본다.
[root@www /html]#vi test.php
그 다음 http://작업하고있는 서버 도메인 or IP/test.php <- php에 대한 정보가 나오면 성공이다.
http://zend.org/store/free_download.php 에서 최신 버전의 Zend Optimizer 를 다운 받는다.
기존 ZendOptimizer 와 다르게 최근 버전은 자동 스크립트를 제공해서 기존처럼 수동으로 라이브러리를 옮겨주고 설정하는 수고를 덜게 했다.
[root@localhost /src]#tar -zxvf ZendOptimizer-2[1].1.0b-Linux_glibc21-i386.tar.gz
[root@localhost /src]#cd ZendOptimizer-2.1.0b-Linux_glibc21-i386
[root@localhost /ZendOptimizer-2.1.0b-Linux_glibc21-i386]#./install.sh
특별한 변경사항 없이 기본으로 “OK” 를 선택해서 인스톨을 마친다.
3.3.9버전의 경우에는 ZendOptimizer디렉토리 내부에서 PHP버전에 맞는 버전의 모듈 파일을 임의의 디렉토 리에 카피하고 php.ini파일의 끝부분에 아래와 같은 내용을 추가해 준다.
[Zend]
Zend_optimizer.version=3.3.9
Zend_extension=/절대경로/ZendOptimizer.so
/home/httpd/html에 ZendOptimizer를 통해서 속도가 얼마나 향상되었는지 test2.php를 통해서 확인 해 볼 수 있다. Optimization level값을 조절 해 가면서 테스트 해본다.
[root@www /html]#vi test2.php
1) jdk 바이너리 설치 파일 다운로드
http://java.sun.com/j2se/downloads.html
예)j2sdk-1_4_2_05-linux-i586.bin - 리눅스 기반의 jdk 1.4.2 바이너리)
[root@localhost /src]# tar -zxvf apache-tomcat-6.0.18.tar.gz
[root@localhost /src]# mv apache-tomcat-6.0.18 /usr/local/
[root@localhost /src]# ln -s apache-tomcat-6.0.18 tomcat
2) 설치 파일 실행
다음처럼 다운받은 설치 파일을 실행시키면 jdk-6-linux-i586와 같이
디렉토리가 생성된다.
[root@localhost /src]# ./ jdk-6-linux-i586.bin
- 버전 및 플랫폼에따라 파일명은 다를 수 있음.
3) 원하는 설치경로에 생성된 디렉토리를 옮긴다.
[root@localhost /src] # mv jdk1.6.0 /usr/local
4) 설치 디렉토리를 jdk 및 jsdk로 심볼릭 링크
[root@localhost /src]# cd /usr/local
[root@localhost /local]# ln -s jdk1.6.0 java
1) http://jakarta.apache.org/ 에서 현재 설치 버전에 맞는 커넥터 소스 파일을 다운로드 한다.
[root@localhost /src]# jakarta-tomcat-connectors-1.2.16-src.tar.gz
2) 해당 파일의 압축을 풀고 모듈을 설치한다.
[root@localhost /src]# tar -zvxf jakarta-tomcat-connectors-1.2.16-src.tar.gz
[root@localhost /src]# cd jakarta-tomcat-connectors-1.2.16-src/jk/native
[root@localhost /native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
[root@localhost /native]# make
[root@localhost /native]# make install
3) srcers.properties 파일을 아파치 conf 디렉토리로 복사한 후아래와 같이 값을 수정한다.
[root@localhost /src]# cp jakarta-tomcat-connectors-1.2.16-src /conf/srcers.properties /usr/local/apache2/conf/
################ JK Connetion #########################
LoadModule jk_module modules/mod_jk.so
JkSrcersFile "/usr/local/apache2/conf/srcers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkMount /*.jsp ajp13
JkMount /admin ajp13
JkMount /admin/* ajp13
JkMount /jsp-examples ajp13
JkMount /jsp-examples/* ajp13
jkMount /servlets-examples ajp13
JkMount /servlets-examples/* ajp13
JkMount /webdav ajp13
#JkMount /webdav/* ajp13
4)아파치의 httpd.conf 에 모듈 설정부분을 추가한다.
LoadModule jk_module modules/mod_jk.so
JkSrcersFile "/usr/local/apache-ssl/conf/srcers.properties"
JkLogFile "/usr/local/tomcat/logs/mod_jk.log"
JkLogLevel debug
JkMount /examples ajp13
JkMount /examples/* ajp13
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
1)http://dev.mysql.com/downloads/connector/j/5.1.html 에서
드라이버 파일 다운로드 후 tomcat/common/lib/ 에 복사해 넣는다.
(tomcat restart 해야 적용됨)
[root@localhost /src]# wget http://dev.mysql.com/get/Downloads/Connector-J/
mysql-connector-java-5.0.5.tar.gz/from/ftp://mirror.khlug.org/mysql/
[root@localhost mysql-connector-java-5.0.5.]#]#cp mysql-connector-java-5.0.5-bin.jar
/usr/local/tomcat/common/lib/
5.1.2.5 환경변수 PATH 설정
/etc/profile 에 다음 PATH 설정 부분을 추가한다.
####java##########
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
export CLASSPATH=./:$JAVA_HOME/lib/tools.jar:/usr/local/tomcat/common/lib/servlet.jar
/etc/profile 설정후 바로 tomcat을 가동시키려면
source /etc/profile 을 실행하여 설정내용이 적용되도록 한다.
5.1.3 VirtualHost 추가 (virtualhost 할 때 추가)
1) httpd.conf 설정
VirtualHost XXX.XXX.XXX.XXX
DocumentRoot /home/httpd/html
ServerName hosting.test.kr
Options Indexes ExecCgi FollowSymlinks
JkMount /examples/* ajp13
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
WebAppDeploy java connection /java
CustomLog logs/hosting.inet.co.kr-access_log common
VirtualHost
2) server.xml 설정
Host name="hosting.test.kr" reloadable="true"
Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix=”hosting.inet.co.kr_access_log."
suffix=".txt"
pattern="combined" resolveHosts="false
Context path="/java" docBase="/home/httpd/html/java"
debug="0" reloadable="true" crossContext="true"
Context path="" docBase="/home/httpd/html" debug="0"
reloadable="true" crossContext="true"
Host
5.1.4. 서비스 데몬 가동
1)아파치를 가동한다.
# /uar/local/apache2/bin/apachectl start
2)tomcat 을 가동시킨다.
# /usr/local/tomcat/bin/startup.sh