tomcat-7.sh 3.7 KB

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