tomcat-8.sh 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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-8()
  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-8/v$tomcat_8_version/bin/apache-tomcat-$tomcat_8_version.tar.gz && Download_src
  16. src_url=$DOWN_ADDR/tomcat/tomcat-8/v$tomcat_8_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_8_version.tar.gz
  20. [ ! -d "$tomcat_install_dir" ] && mkdir -p $tomcat_install_dir
  21. /bin/cp -R apache-tomcat-$tomcat_8_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=8@' 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. [ $Mem -le 768 ] && Xms_Mem=`expr $Mem / 3` || Xms_Mem=256
  44. cat > $tomcat_install_dir/bin/setenv.sh << EOF
  45. JAVA_OPTS='-server -Xms${Xms_Mem}m -Xmx`expr $Mem / 2`m'
  46. CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
  47. # -Djava.rmi.server.hostname=$IPADDR
  48. # -Dcom.sun.management.jmxremote.password.file=\$CATALINA_BASE/conf/jmxremote.password
  49. # -Dcom.sun.management.jmxremote.access.file=\$CATALINA_BASE/conf/jmxremote.access
  50. # -Dcom.sun.management.jmxremote.ssl=false"
  51. EOF
  52. cd ../../../;rm -rf tomcat-native-*
  53. chmod +x $tomcat_install_dir/bin/*.sh
  54. /bin/mv $tomcat_install_dir/conf/server.xml{,_bk}
  55. cd $oneinstack_dir/src
  56. /bin/cp ../config/server.xml $tomcat_install_dir/conf
  57. cat > $tomcat_install_dir/conf/jmxremote.access << EOF
  58. monitorRole readonly
  59. controlRole readwrite \
  60. create javax.management.monitor.*,javax.management.timer.* \
  61. unregister
  62. EOF
  63. cat > $tomcat_install_dir/conf/jmxremote.password << EOF
  64. monitorRole `cat /dev/urandom | head -1 | md5sum | head -c 8`
  65. # controlRole R&D
  66. EOF
  67. chown -R $run_user.$run_user $tomcat_install_dir
  68. /bin/cp ../init.d/Tomcat-init /etc/init.d/tomcat
  69. sed -i "s@JAVA_HOME=.*@JAVA_HOME=$JAVA_HOME@" /etc/init.d/tomcat
  70. sed -i "s@^CATALINA_HOME=.*@CATALINA_HOME=$tomcat_install_dir@" /etc/init.d/tomcat
  71. sed -i "s@^TOMCAT_USER=.*@TOMCAT_USER=$run_user@" /etc/init.d/tomcat
  72. OS_CentOS='chkconfig --add tomcat \n
  73. chkconfig tomcat on'
  74. OS_Debian_Ubuntu='update-rc.d tomcat defaults'
  75. OS_command
  76. echo "${CSUCCESS}Tomcat install successfully! ${CEND}"
  77. fi
  78. else
  79. rm -rf $tomcat_install_dir
  80. echo "${CFAILURE}Tomcat install failed, Please contact the author! ${CEND}"
  81. kill -9 $$
  82. fi
  83. cd ..
  84. }