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
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我下载好那几个源码包,和你脚本放统一目录,执行脚本后,就自动安装好了 ?