tomcat-7.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #!/bin/bash
  2. # Author: yeho <lj2007331 AT gmail.com>
  3. # BLOG: https://blog.linuxeye.com
  4. #
  5. # Version: 1.0-Alpha Jun 15,2015 lj2007331 AT gmail.com
  6. # Notes: OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+
  7. #
  8. # Project home page:
  9. # http://oneinstack.com
  10. Install_tomcat-7()
  11. {
  12. cd $oneinstack_dir/src
  13. . ../functions/download.sh
  14. . ../functions/check_os.sh
  15. . ../options.conf
  16. . /etc/profile
  17. public_IP=`../functions/get_public_ip.py`
  18. if [ "`../functions/get_ip_area.py $public_IP`" == '\u4e2d\u56fd' ];then
  19. FLAG_IP=CN
  20. fi
  21. echo $public_IP $FLAG_IP
  22. [ "$FLAG_IP"x == "CN"x ] && DOWN_ADDR=http://mirrors.aliyun.com/apache || DOWN_ADDR=http://www.apache.org/dist
  23. src_url=$DOWN_ADDR/tomcat/tomcat-7/v$tomcat_7_version/bin/apache-tomcat-$tomcat_7_version.tar.gz && Download_src
  24. src_url=$DOWN_ADDR/tomcat/tomcat-7/v$tomcat_7_version/bin/extras/catalina-jmx-remote.jar && Download_src
  25. id -u $run_user >/dev/null 2>&1
  26. [ $? -ne 0 ] && useradd -M -s /sbin/nologin $run_user || { [ -z "`grep ^$run_user /etc/passwd | grep '/bin/bash'`" ] && usermod -s /bin/bash $run_user; }
  27. tar xzf apache-tomcat-$tomcat_7_version.tar.gz
  28. [ ! -d "$tomcat_install_dir" ] && mkdir -p $tomcat_install_dir
  29. /bin/cp -R apache-tomcat-$tomcat_7_version/* $tomcat_install_dir/
  30. if [ -d "$tomcat_install_dir/conf" ];then
  31. /bin/cp catalina-jmx-remote.jar $tomcat_install_dir/lib
  32. cd $tomcat_install_dir/lib
  33. [ ! -d "$tomcat_install_dir/lib/catalina" ] && mkdir $tomcat_install_dir/lib/catalina
  34. cd $tomcat_install_dir/lib/catalina
  35. jar xf ../catalina.jar
  36. sed -i 's@^server.info=.*@server.info=Tomcat@' org/apache/catalina/util/ServerInfo.properties
  37. sed -i 's@^server.number=.*@server.number=7@' org/apache/catalina/util/ServerInfo.properties
  38. sed -i "s@^server.built=.*@server.built=`date`@" org/apache/catalina/util/ServerInfo.properties
  39. jar cf ../catalina.jar ./*
  40. cd ../../bin
  41. rm -rf $tomcat_install_dir/lib/catalina
  42. OS_CentOS='yum -y install apr apr-devel'
  43. OS_Debian_Ubuntu='apt-get -y install libapr1-dev libaprutil1-dev'
  44. OS_command
  45. tar xzf tomcat-native.tar.gz
  46. cd tomcat-native-*-src/jni/native/
  47. rm -rf /usr/local/apr
  48. ./configure --with-apr=/usr/bin/apr-1-config
  49. make && make install
  50. if [ -d "/usr/local/apr/lib" ];then
  51. Memtatol=`free -m | grep 'Mem:' | awk '{print $2}'`
  52. cat > $tomcat_install_dir/bin/setenv.sh << EOF
  53. JAVA_OPTS='-server -Xms256m -Xmx`expr $Memtatol / 2`m'
  54. CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
  55. # -Djava.rmi.server.hostname=$local_IP
  56. # -Dcom.sun.management.jmxremote.password.file=\$CATALINA_BASE/conf/jmxremote.password
  57. # -Dcom.sun.management.jmxremote.access.file=\$CATALINA_BASE/conf/jmxremote.access
  58. # -Dcom.sun.management.jmxremote.ssl=false"
  59. EOF
  60. cd ../../../;rm -rf tomcat-native-*
  61. chmod +x $tomcat_install_dir/bin/*.sh
  62. /bin/mv $tomcat_install_dir/conf/server.xml{,_bk}
  63. cd $oneinstack_dir/src
  64. /bin/cp ../conf/server.xml $tomcat_install_dir/conf/
  65. cat > $tomcat_install_dir/conf/jmxremote.access << EOF
  66. monitorRole readonly
  67. controlRole readwrite \
  68. create javax.management.monitor.*,javax.management.timer.* \
  69. unregister
  70. EOF
  71. cat > $tomcat_install_dir/conf/jmxremote.password << EOF
  72. monitorRole `cat /dev/urandom | head -1 | md5sum | head -c 8`
  73. # controlRole R&D
  74. EOF
  75. chown -R $run_user.$run_user $tomcat_install_dir
  76. /bin/cp ../init/Tomcat-init /etc/init.d/tomcat
  77. sed -i "s@JAVA_HOME=.*@JAVA_HOME=$JAVA_HOME@" /etc/init.d/tomcat
  78. sed -i "s@^CATALINA_HOME=.*@CATALINA_HOME=$tomcat_install_dir@" /etc/init.d/tomcat
  79. sed -i "s@^TOMCAT_USER=.*@TOMCAT_USER=$run_user@" /etc/init.d/tomcat
  80. OS_CentOS='chkconfig --add tomcat \n
  81. chkconfig tomcat on'
  82. OS_Debian_Ubuntu='update-rc.d tomcat defaults'
  83. OS_command
  84. echo -e "\033[32mTomcat-7 install successfully! \033[0m"
  85. fi
  86. else
  87. rm -rf $tomcat_install_dir
  88. echo -e "\033[31mTomcat-7 install failed, Please contact the author! \033[0m"
  89. kill -9 $$
  90. fi
  91. }