apache+tomcat+jdk+jk自動安裝腳本

火星人 @ 2014-03-03 , reply:0


apache+tomcat+jdk+jk自動安裝腳本

apache+tomcat+jdk+jk自動安裝腳本


前言:
第一,執行腳本的準備工作。
執行這個腳本需要在root家目錄下放好apache、tomcat、jk的tar.gz源碼包,以及已經執行過的jdk(本人無法做到在jdk執行時輸入yes和空格,所以這一步驟需要手動做。
第二,這個腳本可以達到的效果。
執行完成的結果:
apache安裝到/usr/local/apache2,啟用DSO。
tomcat安裝到/opt/tomcat6,已設置環境變數。
JDK在/opt/java,已設置環境變數。
jsp頁面的存放目錄為「/web」,且該目錄已經有了一個叫做test1.jsp的測試文件,可以通過http://ip/test1.jsp進行訪問。
apache和tomcat開機自啟動。
防火牆80埠打開。
第三,額外的小提示
另外,在安裝完成之後如果運行curl  127.0.0.1/test1.jsp得到的是504的界面,那有可能是你的虛擬機太慢了。(我在前幾步已經給tomcat重啟留了10秒鐘的時間了。)直接重啟伺服器,然後再看能否正常的顯示jsp頁面。
第四,鳴謝:Zhangliman是我夫人,我因為要寫這個東西沒按時洗衣服……Smallfish和我一起糾結了「第三,額外的小提示」中的很多內容……
以下是腳本正文



#!/bin/bash
#Program:
#Auto Install apache、tomcat and they connector.
#History
#       2009/12/19      Caoyameng&&Zhangliman       Version0.1
#       完成初稿。
#       2010/1/7      Caoyameng&&Smallfish       Version0.1
#       完成終稿。
###################http://bbs.linuxtone.org/thread-4776-1-1.html
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
########Check software development environment.
         rpm -q  gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel > /dev/null
         if  [ "$?" != 0 ] ;
         then
         echo "Plz check your software"
         exit 0
         fi
#        echo "proceed"
############Check install files:apache tomcat JDK tomcat-connectors
##########首先給JDK文件當前用戶可執行的許可權,如chmod 700 jdk* ,然後執行該文件,讀取許可協議后輸入「yes」即可安裝,安裝完成後最後在當前目錄獲得一個jdk目錄。
if [ ! -e httpd-2.2.*.tar* ];then
echo "I cann't find apache source file."
exit 0
fi
if [ ! -e apache-tomcat-6.0.*.tar* ];then
echo "I cann't find tomcat source file."
exit 0
fi
if [ ! -d jdk1.6* ];then
echo "I cann't find JDK directory."
exit 0
fi
if [ ! -e tomcat-connectors*.tar* ];then
echo "I cann't find mod_jk source file."
exit 0
fi
############Install and setup JAVA environment
  mv jdk1.6*  /opt/java
  cat >> /etc/profile  << EFF
########################################
JAVA_HOME=/opt/java
JRE_HOME=\$JAVA_HOME/jre
CLASSPATH=:\$JAVA_HOME/lib:\$JRE_HOME/lib
PATH=\$JAVA_HOME/bin:\$JRE_HOME/bin:\$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH
########################################
EFF
source /etc/profile
#######################
####本文首發自http://bbs.linuxtone.org/thread-4776-1-1.html
################
java -version
  if  [ "$?" != 0 ] ;
         then
         echo "I cann't set java path."
         exit 0
         fi
  
#############Install Apache web server ,enable modules is so and enable DSO .
  tar zxvf httpd*
  cd http*
  ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-so && make  && make install
  if  [ "$?" != 0 ] ;
         then
         echo "I cann't install apache ."
         exit 0
         fi
############Check default website.
  /usr/local/apache2/bin/apachectl start
  curl    127.0.0.1|grep "It works"
  if  [ "$?" != 0 ] ;
         then
         echo "I cann't read default website ."
         exit 0
         fi
###########Install Tomcat,and setup tomcat environment。
  cd -
  tar zxvf apache-tomcat*
  mv apache-tomcat-6.0.18/  /opt/tomcat6
cat >> /etc/profile << TTD
TOMCAT_HOME=/opt/tomcat6
PATH=\$PATH:\$TOMCAT_HOME/bin/:/usr/local/apache2/bin:
export JAVA_HOME JRE_HOME CLASSPATH PATH TOMCAT_HOME
TTD
source /etc/profile
############Start Tomcat
sh  /opt/tomcat6/bin/startup.sh
sleep 5
curl  127.0.0.1:8080  |grep   "Thanks for using Tomcat"
  if  [ "$?" != 0 ] ;
         then
         echo "I think install tomcat is unfinished  ."
         exit 0
         fi

############Install JK
  tar zxvf tomcat-connectors*
  cd  tomcat-connectors*/native
  ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-tomcat=/opt/tomcat6 --with-java-home=/opt/java && make  &&make install
############去apache的目錄下看看mod_jk.so是否存在
  ls -l  /usr/local/apache2/modules/mod_jk.so
   if  [ "$?" != 0 ] ;
         then
         echo "I cann't find mod_jk.so  ."
         exit 0
         fi
  
#######################
####本文首發自http://bbs.linuxtone.org/thread-4776-1-1.html
################
###########Set apache loading mod_jk

cat >> /usr/local/apache2/conf/httpd.conf << DDE
  LoadModule jk_module modules/mod_jk.so
  #mod_jk settings
  Include conf/mod_jk.conf
DDE
#######################################應用Include 命令,我們將mod_jk的配置單獨列了一個文件。
cat >>  /usr/local/apache2/conf/mod_jk.conf  << FFF
  JkWorkersFile conf/workers.properties   
#指定配置文件
  JkLogFile  logs/mod_jk.log   
#指定日誌文件
  JkShmFile  logs/jk-runtime-status   
#運行狀態文件
  JkLogLevel info   
#日誌等級 info/debug等等
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
  #日誌日期格式
  JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
  JkRequestLogFormat "%w %V %T"
  
  #Sample JkMounts.  Replace these with the paths you would
  #like to mount from your JSP server.
  #syntax: JkMount ${URL_DIR}/*.jsp worker_name
  JkMount  /*.jsp worker1  
FFF

#########################################下面該配置一下workers.properties了。
  cat >>/usr/local/apache2/conf/workers.properties<< FMF
  worker.list=worker1     
#設置它的worker.list=worker1   
  worker.worker1.port=8009
#定義worker1的埠
  worker.worker1.host=localhost
  worker.worker1.type=ajp13
#定義worker類型的格式
  worker.woker1.lbfactor=1   
#當此Tomcat worker被用於一個負載平衡worker使用時,此屬性將被使用。它定義了此worker的負載平衡權值。
FMF
/usr/local/apache2/bin/apachectl restart
  if  [ "$?" != 0 ] ;
         then
         echo "Plz check your apache configuration files or services status."
         exit 0
         fi
################Set tomcat
########Creat Catalina directory and  configuration file.
mkdir -p $TOMCAT_HOME/conf/Catalina/localhost
cat >> $TOMCAT_HOME/conf/Catalina/localhost/ROOT.xml << DDQ
  <Context   path="/"   docBase="/web"   debug="0"  workDir="/tmp"   reloadable="false"/>
DDQ
##########modify server.xml
sed -i 's/appBase="webapps"/appBase="\/web"/' /opt/tomcat6/conf/server.xml
sed -i '/xmlValidation="false" xmlNamespaceAware="false">/a\<Context   path="/"   docBase="/web"   debug="0"  workDir="/tmp"   reloadable="false"/>'  /opt/tomcat6/conf/server.xml
#creat test website.
mkdir /web
cat >>/web/test1.jsp<< WEB
<%@ page contentType="text/html;charset=big5" %>
<%
String str1="Hello World!";
out.println(str1);
%>
WEB
#######################
####本文首發自http://bbs.linuxtone.org/thread-4776-1-1.html
################
##########restart apache and tomcat
/opt/tomcat6/bin/shutdown.sh
sleep 5
/usr/local/apache2/bin/apachectl stop
sleep 5
/opt/tomcat6/bin/startup.sh
sleep 5
/usr/local/apache2/bin/apachectl start
########查看效果:
sleep 5
curl  127.0.0.1/test1.jsp
curl  127.0.0.1/test1.jsp |grep  Hello   && echo  "Completed"
#########Add auto start
sed -i '2a source /etc/profile' /opt/tomcat6/bin/startup.sh
echo  "/opt/tomcat6/bin/startup.sh" >> /etc/rc.local
echo  "/usr/local/apache2/bin/apachectl start" >>/etc/rc.local
#########setting firewall
sed -i '/--dport 22 -j ACCEPT/a\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT'  /etc/sysconfig/iptables
/etc/init.d/iptables restart
複製代碼
《解決方案》

我下載好那幾個源碼包,和你腳本放統一目錄,執行腳本后,就自動安裝好了 ?




[火星人 via ] apache+tomcat+jdk+jk自動安裝腳本已經有171次圍觀

http://www.coctec.com/docs/service/show-post-2115.html