apache+tomcat+jdk+jk自动安装脚本

发布于 2022-10-15 08:20:30 字数 11380 浏览 26 评论 0

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
复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情泪▽动烟 2022-10-22 08:20:30

我下载好那几个源码包,和你脚本放统一目录,执行脚本后,就自动安装好了 ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文