Apache,tomcat,nginx,apache+tomcat,nginx+tomcat自动化安装脚本
#!/bin/bash
#Auto Install Apache Tomcat Nginx apache+tomcat nginx+tomcat.
#apache version: 2.2.17 download: http://httpd.apache.org/download.cgi#apache22
#jdk version: 1.6 download: http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
#tomcat version: 6.0.23 download: http://tomcat.apache.org/download-60.cgi
#nginx version: 0.8.54 download: http://nginx.org/en/download.html
#执行这个自动化安装脚本需要把apache tomcat jdk nginx的安装包拷贝到/soft目录下.
#apache安装在/opt/conf/apache目录下. nginx安装在/opt/conf/nginx目录下.
#tomcat安装在/opt/conf/tomcat目录下. jdk安装在/opt/conf/jdk目录下.
# 20110413 write: liweizhong e-mail:[email protected] QQ:543302969 Version 1.1
IN_SRC=/soft
IN_DIR=/opt/conf
echo "=================Check software development environment.================"
echo ""
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 "Please check your need software"
exit 0
else
echo "software is OK !! "
fi
if [[ ! -d $IN_DIR ]]
then
mkdir -p $IN_DIR
fi
function apache_ins {
echo ""
echo "===========================Apache installing============================="
sleep 5
#Auto apache
echo "installing httpd..."
cd $IN_SRC
tar jxvf httpd-2.2.17.tar.bz2
cd httpd-2.2.17
./configure --prefix=$IN_DIR/apache --with-mpm=worker --enable-rewrite --enable-deflate --disable-userdir --enable-so
[ $? != 0 ] && exit
make
[ $? != 0 ] && exit
make install
[ $? != 0 ] && exit
echo "Include conf/vhost.conf" >> $IN_DIR/apache/conf/httpd.conf
sed -i "s/#ServerName/ServerName localhost/g" $IN_DIR/apache/conf/httpd.conf
touch $IN_DIR/apache/conf/vhost.conf
$IN_DIR/apache/bin/apachectl start
echo "$IN_DIR/apache/bin/apachectl start" >> /etc/rc.local
${SERVICES}_ins
sleep 2
echo "==========================Auto Install finished=========================="
}
function tomcat_ins {
echo ""
echo "===========================Tomcat installing============================="
sleep 5
#Auto Install JDK
cd /soft
chmod 700 jdk*
./jdk-6u23-linux-i586.bin
mv jdk1.6.0_23/ /opt/conf/jdk
rm -rf /usr/bin/java
rm -rf /usr/bin/javac
ln -s /opt/conf/jdk/bin/java /usr/bin/java
ln -s /opt/conf/jdk/bin/javac /usr/bin/javac
java -version
sleep 3
javac -version
echo ""
echo ""
echo "====================Auto Install JDK Have finished======================"
#Auto Install tomcat
sleep 5
cd /soft
tar xzvf apache-tomcat-6.0.32.tar.gz
mv apache-tomcat-6.0.32 /opt/conf/tomcat
cat >> /etc/profile << EFF
TOMCAT_HOME=/opt/conf/tomcat
JAVA_HOME=/opt/conf/jdk
JRE_HOME=/opt/conf/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$TOMCAT_HOME/bin/
export JAVA_HOME JRE_HOME PATH TOMCAT_HOME
EFF
source /etc/profile
sleep 3
cd /opt/conf/tomcat/bin
./startup.sh
echo ""
echo ""
echo "=================Already all installation is complete================="
}
function nginx_ins {
echo ""
echo "===========================Nginx installing==========================="
sleep 5
#Auto nginx
echo "installing nginx..."
cd $IN_SRC
tar zxvf nginx-0.8.54.tar.gz
cd nginx-0.8.54
make_clean
useradd www
./configure --user=www --group=www --prefix=$IN_DIR/nginx --without-http_rewrite_module --with-http_stub_status_module --with-http_ssl_module
[ $? != 0 ] && exit
make
[ $? != 0 ] && exit
make install
[ $? != 0 ] && exit
/opt/conf/nginx/sbin/nginx
echo "$IN_DIR/nginx/sbin/nginx " >> /etc/rc.local
${SERVICES}_ins
sleep 3
echo "===============Auto Install finished================================="
}
echo "Slect install
1. apache
2. tomcat+jdk
3. nginx
4. apache+tomcat
5. nginx+tomcat
6. don't install is now
"
read -p "Please Input 1,2,3,4,5,6:" SERVER_ID
if [[ $SERVER_ID == 5 ]]; then
SERVICE="nginx"
SERVICES="tomcat"
elif [[ $SERVER_ID == 4 ]]; then
SERVICE="apache"
SERVICES="tomcat"
elif [[ $SERVER_ID == 3 ]]; then
SERVICE="nginx"
elif [[ $SERVER_ID == 2 ]]; then
SERVICE="tomcat"
elif [[ $SERVER_ID == 1 ]]; then
SERVICE="apache"
else
echo ""
echo "Thanks bye!!"
exit
fi
${SERVICE}_ins