[java_tomcat설치 및 apm 연동스크립트]
#!/bin/bash
############################################################
# 설치에 필요한 변수 지정
############################################################
# 소스 다운로드 주소
SOURCE_ADDR="http://115.68.220.220/source/java_tomcat"
# htaccess 보안 설정 로그인
ID="아이디비공개"
PW="비밀번호비공개"
wget="wget --user=$ID --password=$PW"
# 소스 저장 경로
SOURCE_DIR="/usr/local/src/Java_tomcat"
mkdir $SOURCE_DIR
cd $SOURCE_DIR
# java 버전 선택
java1="jdk1.7.0_45"
java2="jdk1.8.0_151"
echo ""
echo -e " \\033[01;31m[[ Java 버전 선택 ]]"
echo -e "\\033[01;32m=============================="
echo -e " \\033[01;32m1) Java 1.7.x ( 1.7.0_45 )"
echo -e " \\033[01;32m2) Java 1.8.x ( 1.8.0_151 )"
echo ""
echo -e -n "\\033[01;33m버전을 선택해주세요 [1,2] : "
read Java_S
echo ""
# Tomcat 버전 선택
tomcat1="apache-tomcat-6.0.20"
tomcat2="apache-tomcat-7.0.42"
tomcat3="apache-tomcat-8.0.47"
echo ""
echo -e " \\033[01;31m[[ Tomcat 버전 선택 ]]"
echo -e "\\033[01;32m=============================="
echo -e " \\033[01;32m1) Tomcat 6.0.x ( 6.0.20 )"
echo -e " \\033[01;32m2) Tomcat 7.0.x ( 7.0.42 )"
echo -e " \\033[01;32m3) Tomcat 8.0.x ( 8.0.47 )"
echo ""
echo -e -n "\\033[01;33m버전을 선택해주세요 [1,2,3] : "
read Tomcat_S
# 아파치 설치되어 있는 경로
echo ""
echo -e " \\033[01;31m[[ 아파치 conf 파일 경로 입력 ]]"
echo -e "\\033[01;32m=============================="
echo ""
echo -e -n "\\033[01;33m 현재 아파치 conf 파일의 경로를 입력해주세요 : "
echo -e "\\033[01;33m ex) /usr/local/apache/conf/"
echo -e -n "\\033[01;33m 아파치 conf 파일 경로 : "
read apache_conf
# 아파치 apxs 경로
echo ""
echo -e " \\033[01;31m[[ 아파치 apxs 경로 입력 ]]"
echo -e "\\033[01;32m=============================="
echo ""
echo -e -n "\\033[01;33m 현재 아파치 apxs 경로를 입력해주세요 : "
echo -e "\\033[01;33m ex ) /usr/local/apache/bin/apxs "
echo -e -n "\\033[01;33m 아파치 apxs 경로 : "
read apache_apxs
#Java 설치시작
case "$Java_S" in
1)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$java1-x86_64.tar.gz
tar zxvf $java1-x86_64.tar.gz
mv $java1 /usr/local/java
cp -arp /etc/profile /etc/profile_smileservbackup
#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '2 i\JAVA_HOME=/usr/local/java' /etc/profile
sed -i '3 i\CLASSPATH=.:$JAVA_HOME/lib/tools.jar' /etc/profile
sed -i '4 i\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '5 i\export JAVA_HOME CLASSPATH PATH' /etc/profile
source /etc/profile
;;
# 자바 1.8 설치 시작
# 자바 1.8버전은 ris에 없으며, 공식홈페이지에서 wget으로 다운받을경우 압축이 안풀리는 버그가 있음.
# 해당버전 개인 서버에 올려놓고 작업진행
2)
cd $SOURCE_DIR
#$wget $SOURCE_ADDR/$java2.tar.gz
#tar zxvf $java2.tar.gz
#mv $java2 /usr/local/java
wget --user=아이디비공개 --password=비밀번호비공개 http://115.68.220.220/java/jdk-8u151-linux-x64.tar.gz
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151 /usr/local/java
cp -arp /etc/profile /etc/profile_backup
#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '2 i\JAVA_HOME=/usr/local/java' /etc/profile
sed -i '3 i\CLASSPATH=.:$JAVA_HOME/lib/tools.jar' /etc/profile
sed -i '4 i\PATH=$PATH:$JAVA_HOME/bin' /etc/profile
sed -i '5 i\export JAVA_HOME CLASSPATH PATH' /etc/profile
source /etc/profile
;;
*)
echo -e -n "잘못 입력 했습니다."
exit
;;
esac
#Tomcat 6버전 설치
case "$Tomcat_S" in
1)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$tomcat1.tar.gz
tar zxvf $tomcat1.tar.gz
mv $tomcat1 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2
# java에서 환경 변수 설정했던 부분을 sed 를 이용하여 다시 재설정
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;
#Tomcat 7버전 설치
2)
cd $SOURCE_DIR
$wget $SOURCE_ADDR/$tomcat2.tar.gz
tar zxvf $tomcat2.tar.gz
mv $tomcat2 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2
# java에서 환경 변수 설정했던 부분을 sed 를 이용하여 다시 재설정
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;
#Tomcat 8버전 설치
# ris에 해당버전이 없으며, 공식홈페이지에서 wget 으로 다운받아 사용
3)
cd $SOURCE_DIR
#$wget $SOURCE_ADDR/$tomcat3.tar.gz
#tar zxvf $tomcat3.tar.gz
#mv $tomcat3 /usr/local/tomcat
wget http://apache.tt.co.kr/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
tar -xvf apache-tomcat-8.0.47.tar.gz
mv apache-tomcat-8.0.47 /usr/local/tomcat
cp -arp /etc/profile /etc/profile_backup2
#여기에 환경변수설정 // sed -i 로 2번째 줄부터 5번째 줄까지 환경변수 추가
sed -i '3 i\CATALINA_HOME=/usr/local/tomcat' /etc/profile
sed -i 's/CLASSPATH=\.\:\$JAVA\_HOME\/lib\/tools\.jar/CLASSPATH\=\.\:\$JAVA\_HOME\/lib\/tools\.jar\:\$CATALINA\_HOME\/lib\-jsp\-api\.jar\:\$CATALINA\_HOME\/lib\/servlet\-api\.jar/g' /etc/profile
sed -i 's/PATH=\$PATH\:\$JAVA\_HOME\/bin/PATH=\$PATH\:\$JAVA\_HOME\/bin\:\$CATALINA\_HOME\/bin/g' /etc/profile
sed -i 's/JAVA\_HOME CLASSPATH PATH/JAVA\_HOME CLASSPATH PATH CATALINA\_HOME/g' /etc/profile
source /etc/profile
/usr/local/tomcat/bin/startup.sh
cp -arp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
chkconfig --add tomcat
;;
*)
echo -e -n "잘못 입력 했습니다."
exit
;;
esac
# tomcat & apache 연동
cd $SOURCE_DIR
wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz
tar -zxvf tomcat-connectors-1.2.42-src.tar.gz
cd tomcat-connectors-1.2.42-src/native/
./configure --with-apxs=$apache_apxs
make
make install
cd $apache_conf
touch workers.properties
echo "workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
# BEGIN workers.properties
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
# END workers.properties" >> $apache_conf/workers.properties
cp -arp httpd.conf httpd.conf_smileservbackup
# 아파치 설정부분에 모듈 추가하여 추가한 바로 아래에 설정내용 입력
apache_conf2=$apache_conf\httpd.conf
num=`cat -n $apache_conf2 | grep "LoadModule" | awk -F" " '{print $1}' |tail -n 1`
sed -i "`expr $num + 1` i\LoadModule jk_module modules/mod_jk.so" $apache_conf2
sed -i "`expr $num + 2` i\<IfModule jk_module>" $apache_conf2
sed -i "`expr $num + 3` i\JkWorkersFile conf/workers.properties" $apache_conf2
sed -i "`expr $num + 4` i\JkShmFile logs/mod_jk.shm" $apache_conf2
sed -i "`expr $num + 5` i\JkLogFile logs/mod_jk.log" $apache_conf2
sed -i "`expr $num + 6` i\JkLogLevel info" $apache_conf2
sed -i "`expr $num + 7` i\JkLogStampFormat \"[%a %b %d %H :%M :%S %Y]\"" $apache_conf2
sed -i "`expr $num + 8` i\JkMount /*.jsp ajp13" $apache_conf2
sed -i "`expr $num + 9` i\</ifModule>" $apache_conf2
# DirectoryIndex 부분과 AddType 부분에 jsp 내용 추가
sed -i 's/DirectoryIndex index.*/DirectoryIndex index.html index.php index.jsp/g' $apache_conf2
sed -i 's/AddType application\/x-httpd-php .*/AddType application\/x-httpd-php .php .jsp .html/g' $apache_conf2
echo ""
echo -e " \\033[01;31m[[ java & tomcat 설치 및 아파치와 연동 완료되었습니다. ]]"
echo -e " \\033[01;32m1) 아파치에서 vhost를 사용할 경우 각 도메인 설정에 JKMount /*.jsp ajp13 을 추가하여 사용하시면 됩니다. "
echo -e " \\033[01;32m2) 현재 jsp 를 기본적으로 읽어드리는 경로는 /usr/local/tomcat/webapps/ROOT/ 입니다. "
echo -e " \\033[01;32m3) 해당 경로를 변경하고 싶다면 , 톰캣에서 설정을 변경해주시면 되겠습니다."
echo -e " \\033[01;32m3) 웹서비스를 하는 고객일 경우를 대비하여 아파치 재시작을 하지 않았습니다.아차피를 재시작 하셔야 정상적으로 연동이 완료됩니다."
echo -e " \\033[01;32m3) 감사합니다."
echo ""