Sfoglia il codice sorgente

Add Tomcat9 and jdk9

lj2007331@gmail.com 7 anni fa
parent
commit
d17874c2c0

+ 1 - 1
backup_setup.sh

@@ -39,7 +39,7 @@ while :; do echo
   echo -e "\t${CMSG}5${CEND}. UPYUN(又拍云)"
   read -p "Please input a number:(Default 1 press Enter) " desc_bk
   [ -z "${desc_bk}" ] && desc_bk=1
-  ary=(1 2 3 4 5 12 13 14 15 23 24 25 34 35 45 123 124 125 234 235 345 1234 1235 2345 12345)
+  ary=(1 2 3 4 5 12 13 14 15 23 24 25 34 35 45 123 124 125 134 135 145 234 235 245 345 1234 1235 2345 12345)
   if [[ "${ary[@]}" =~ "${desc_bk}" ]]; then
     break
   else

+ 9 - 9
include/check_download.sh

@@ -76,15 +76,15 @@ checkDownload() {
       case "${jdk_option}" in
         1)
           echo "Download JDK 1.8..."
-          JDK_FILE="jdk-$(echo ${jdk18_ver} | awk -F. '{print $2}')u$(echo ${jdk18_ver} | awk -F_ '{print $NF}')-linux-${SYS_BIG_FLAG}.tar.gz"
+          JDK_FILE="jdk-$(echo ${jdk18_ver} | awk -F. '{print $2}')u$(echo ${jdk18_ver} | awk -F_ '{print $NF}')-linux-${SYS_BIT_j}.tar.gz"
           ;;
         2)
           echo "Download JDK 1.7..."
-          JDK_FILE="jdk-$(echo ${jdk17_ver} | awk -F. '{print $2}')u$(echo ${jdk17_ver} | awk -F_ '{print $NF}')-linux-${SYS_BIG_FLAG}.tar.gz"
+          JDK_FILE="jdk-$(echo ${jdk17_ver} | awk -F. '{print $2}')u$(echo ${jdk17_ver} | awk -F_ '{print $NF}')-linux-${SYS_BIT_j}.tar.gz"
           ;;
         3)
           echo "Download JDK 1.6..."
-          JDK_FILE="jdk-$(echo ${jdk16_ver} | awk -F. '{print $2}')u$(echo ${jdk16_ver} | awk -F_ '{print $NF}')-linux-${SYS_BIG_FLAG}.bin"
+          JDK_FILE="jdk-$(echo ${jdk16_ver} | awk -F. '{print $2}')u$(echo ${jdk16_ver} | awk -F_ '{print $NF}')-linux-${SYS_BIT_j}.bin"
           ;;
       esac
       echo "Download apr..."
@@ -389,9 +389,9 @@ checkDownload() {
         fi
         # start download
         src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME} && Download_src
-        src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5 && Download_src
+        src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5sum && Download_src
         # verifying download
-        PERCONA_TAR_MD5=$(awk '{print $1}' ${FILE_NAME}.md5)
+        PERCONA_TAR_MD5=$(awk '{print $1}' ${FILE_NAME}.md5sum)
         [ -z "${PERCONA_TAR_MD5}" ] && PERCONA_TAR_MD5=$(curl -s ${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5sum |  grep ${FILE_NAME} | awk '{print $1}')
         tryDlCount=0
         while [ "$(md5sum ${FILE_NAME} | awk '{print $1}')" != "${PERCONA_TAR_MD5}" ]; do
@@ -424,9 +424,9 @@ checkDownload() {
         fi
         # start download
         src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME} && Download_src
-        src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5 && Download_src
+        src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5sum && Download_src
         # verifying download
-        PERCONA_TAR_MD5=$(awk '{print $1}' ${FILE_NAME}.md5)
+        PERCONA_TAR_MD5=$(awk '{print $1}' ${FILE_NAME}.md5sum)
         [ -z "${PERCONA_TAR_MD5}" ] && PERCONA_TAR_MD5=$(curl -s ${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5sum |  grep ${FILE_NAME} | awk '{print $1}')
         tryDlCount=0
         while [ "$(md5sum ${FILE_NAME} | awk '{print $1}')" != "${PERCONA_TAR_MD5}" ]; do
@@ -459,9 +459,9 @@ checkDownload() {
         fi
         # start download
         src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME} && Download_src
-        src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5 && Download_src
+        src_url=${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5sum && Download_src
         # verifying download
-        PERCONA_TAR_MD5=$(awk '{print $1}' ${FILE_NAME}.md5)
+        PERCONA_TAR_MD5=$(awk '{print $1}' ${FILE_NAME}.md5sum)
         [ -z "${PERCONA_TAR_MD5}" ] && PERCONA_TAR_MD5=$(curl -s ${DOWN_ADDR_PERCONA}/${FILE_NAME}.md5sum |  grep ${FILE_NAME} | awk '{print $1}')
         tryDlCount=0
         while [ "$(md5sum ${FILE_NAME} | awk '{print $1}')" != "${PERCONA_TAR_MD5}" ]; do

+ 2 - 2
include/check_os.sh

@@ -54,14 +54,14 @@ fi
 
 if [ "$(getconf WORD_BIT)" == "32" ] && [ "$(getconf LONG_BIT)" == "64" ]; then
   OS_BIT=64
-  SYS_BIG_FLAG=x64 #jdk
+  SYS_BIT_j=x64 #jdk
   SYS_BIT_a=x86_64 #mariadb
   SYS_BIT_b=x86_64 #mariadb
   SYS_BIT_c=x86_64 #ZendGuardLoader
   SYS_BIT_d=x86-64 #ioncube
 else
   OS_BIT=32
-  SYS_BIG_FLAG=i586
+  SYS_BIT_j=i586
   SYS_BIT_a=x86
   SYS_BIT_b=i686
   SYS_BIT_c=i386

+ 5 - 5
include/jdk-1.6.sh

@@ -10,16 +10,16 @@
 
 Install-JDK16() {
   pushd ${oneinstack_dir}/src > /dev/null
-  JDK_FILE="jdk-`echo $jdk16_ver | awk -F. '{print $2}'`u`echo $jdk16_ver | awk -F_ '{print $NF}'`-linux-$SYS_BIG_FLAG.bin"
+  JDK_FILE="jdk-`echo ${jdk16_ver} | awk -F. '{print $2}'`u`echo ${jdk16_ver} | awk -F_ '{print $NF}'`-linux-${SYS_BIT_j}.bin"
   JAVA_dir=/usr/java
-  JDK_NAME="jdk$jdk16_ver"
+  JDK_NAME="jdk${jdk16_ver}"
   JDK_PATH=$JAVA_dir/$JDK_NAME
-  
+
   [ "$OS" == 'CentOS' ] && [ -n "`rpm -qa | grep jdk`" ] && rpm -e `rpm -qa | grep jdk`
-  
+
   chmod +x $JDK_FILE
   ./$JDK_FILE
-  
+
   if [ -d "$JDK_NAME" ]; then
     rm -rf $JAVA_dir; mkdir -p $JAVA_dir
     mv $JDK_NAME $JAVA_dir

+ 5 - 5
include/jdk-1.7.sh

@@ -10,15 +10,15 @@
 
 Install-JDK17() {
   pushd ${oneinstack_dir}/src > /dev/null
-  JDK_FILE="jdk-`echo $jdk17_ver | awk -F. '{print $2}'`u`echo $jdk17_ver | awk -F_ '{print $NF}'`-linux-$SYS_BIG_FLAG.tar.gz"
+  JDK_FILE="jdk-`echo ${jdk17_ver} | awk -F. '{print $2}'`u`echo ${jdk17_ver} | awk -F_ '{print $NF}'`-linux-${SYS_BIT_j}.tar.gz"
   JAVA_dir=/usr/java
-  JDK_NAME="jdk$jdk17_ver"
+  JDK_NAME="jdk${jdk17_ver}"
   JDK_PATH=$JAVA_dir/$JDK_NAME
-  
+
   [ "$OS" == 'CentOS' ] && [ -n "`rpm -qa | grep jdk`" ] && rpm -e `rpm -qa | grep jdk`
-  
+
   tar xzf $JDK_FILE
-  
+
   if [ -d "$JDK_NAME" ]; then
     rm -rf $JAVA_dir; mkdir -p $JAVA_dir
     mv $JDK_NAME $JAVA_dir

+ 5 - 5
include/jdk-1.8.sh

@@ -10,15 +10,15 @@
 
 Install-JDK18() {
   pushd ${oneinstack_dir}/src > /dev/null
-  JDK_FILE="jdk-`echo $jdk18_ver | awk -F. '{print $2}'`u`echo $jdk18_ver | awk -F_ '{print $NF}'`-linux-$SYS_BIG_FLAG.tar.gz"
+  JDK_FILE="jdk-`echo ${jdk18_ver} | awk -F. '{print $2}'`u`echo ${jdk18_ver} | awk -F_ '{print $NF}'`-linux-${SYS_BIT_j}.tar.gz"
   JAVA_dir=/usr/java
-  JDK_NAME="jdk$jdk18_ver"
+  JDK_NAME="jdk${jdk18_ver}"
   JDK_PATH=$JAVA_dir/$JDK_NAME
-  
+
   [ "$OS" == 'CentOS' ] && [ -n "`rpm -qa | grep jdk`" ] && rpm -e `rpm -qa | grep jdk`
-  
+
   tar xzf $JDK_FILE
-  
+
   if [ -d "$JDK_NAME" ]; then
     rm -rf $JAVA_dir; mkdir -p $JAVA_dir
     mv $JDK_NAME $JAVA_dir

+ 37 - 0
include/jdk-9.sh

@@ -0,0 +1,37 @@
+#!/bin/bash
+# Author:  yeho <lj2007331 AT gmail.com>
+# BLOG:  https://blog.linuxeye.cn
+#
+# Notes: OneinStack for CentOS/RadHat 6+ Debian 6+ and Ubuntu 12+
+#
+# Project home page:
+#       https://oneinstack.com
+#       https://github.com/lj2007331/oneinstack
+
+Install-JDK18() {
+  pushd ${oneinstack_dir}/src > /dev/null
+  JDK_FILE="jdk-${jdk9_ver}_linux-${SYS_BIT_j}_bin.tar.gz"
+  JAVA_dir=/usr/java
+  JDK_NAME="jdk-${jdk9_ver}"
+  JDK_PATH=$JAVA_dir/$JDK_NAME
+
+  [ "$OS" == 'CentOS' ] && [ -n "`rpm -qa | grep jdk`" ] && rpm -e `rpm -qa | grep jdk`
+
+  tar xzf $JDK_FILE
+
+  if [ -d "$JDK_NAME" ]; then
+    rm -rf $JAVA_dir; mkdir -p $JAVA_dir
+    mv $JDK_NAME $JAVA_dir
+    [ -z "`grep ^'export JAVA_HOME=' /etc/profile`" ] && { [ -z "`grep ^'export PATH=' /etc/profile`" ] && echo  "export JAVA_HOME=$JDK_PATH" >> /etc/profile || sed -i "s@^export PATH=@export JAVA_HOME=$JDK_PATH\nexport PATH=@" /etc/profile; } || sed -i "s@^export JAVA_HOME=.*@export JAVA_HOME=$JDK_PATH@" /etc/profile
+    [ -z "`grep ^'export CLASSPATH=' /etc/profile`" ] && sed -i "s@export JAVA_HOME=\(.*\)@export JAVA_HOME=\1\nexport CLASSPATH=\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib@" /etc/profile
+    [ -n "`grep ^'export PATH=' /etc/profile`" -a -z "`grep '$JAVA_HOME/bin' /etc/profile`" ] && sed -i "s@^export PATH=\(.*\)@export PATH=\$JAVA_HOME/bin:\1@" /etc/profile
+    [ -z "`grep ^'export PATH=' /etc/profile | grep '$JAVA_HOME/bin'`" ] && echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
+    . /etc/profile
+    echo "${CSUCCESS}$JDK_NAME installed successfully! ${CEND}"
+  else
+    rm -rf $JAVA_dir
+    echo "${CFAILURE}JDK install failed, Please contact the author! ${CEND}"
+    kill -9 $$
+  fi
+  popd
+}

+ 1 - 1
include/tomcat-6.sh

@@ -21,7 +21,7 @@ Install_Tomcat6() {
     ./configure
     make -j ${THREAD} && make install
     popd
-    rm -rf apr-${apr_ver} 
+    rm -rf apr-${apr_ver}
   fi
 
   tar xzf apache-tomcat-${tomcat6_ver}.tar.gz

+ 1 - 1
include/tomcat-7.sh

@@ -21,7 +21,7 @@ Install_Tomcat7() {
     ./configure
     make -j ${THREAD} && make install
     popd
-    rm -rf apr-${apr_ver} 
+    rm -rf apr-${apr_ver}
   fi
 
   tar xzf apache-tomcat-${tomcat7_ver}.tar.gz

+ 1 - 1
include/tomcat-8.sh

@@ -21,7 +21,7 @@ Install_Tomcat8() {
     ./configure
     make -j ${THREAD} && make install
     popd
-    rm -rf apr-${apr_ver} 
+    rm -rf apr-${apr_ver}
   fi
 
   tar xzf apache-tomcat-${tomcat8_ver}.tar.gz

+ 137 - 0
include/tomcat-9.sh

@@ -0,0 +1,137 @@
+#!/bin/bash
+# Author:  yeho <lj2007331 AT gmail.com>
+# BLOG:  https://blog.linuxeye.cn
+#
+# Notes: OneinStack for CentOS/RadHat 6+ Debian 6+ and Ubuntu 12+
+#
+# Project home page:
+#       https://oneinstack.com
+#       https://github.com/lj2007331/oneinstack
+
+Install_Tomcat9() {
+  pushd ${oneinstack_dir}/src > /dev/null
+  . /etc/profile
+  id -u ${run_user} >/dev/null 2>&1
+  [ $? -ne 0 ] && useradd -M -s /bin/bash ${run_user} || { [ -z "$(grep ^${run_user} /etc/passwd | grep '/bin/bash')" ] && usermod -s /bin/bash ${run_user}; }
+
+  # install apr
+  if [ ! -e "/usr/local/apr/bin/apr-1-config" ]; then
+    tar xzf apr-${apr_ver}.tar.gz
+    pushd apr-${apr_ver}
+    ./configure
+    make -j ${THREAD} && make install
+    popd
+    rm -rf apr-${apr_ver}
+  fi
+
+  tar xzf apache-tomcat-${tomcat9_ver}.tar.gz
+  [ ! -d "${tomcat_install_dir}" ] && mkdir -p ${tomcat_install_dir}
+  /bin/cp -R apache-tomcat-${tomcat9_ver}/* ${tomcat_install_dir}
+  rm -rf ${tomcat_install_dir}/webapps/{docs,examples,host-manager,manager,ROOT/*}
+
+  if [ ! -e "${tomcat_install_dir}/conf/server.xml" ]; then
+    rm -rf ${tomcat_install_dir}
+    echo "${CFAILURE}Tomcat install failed, Please contact the author! ${CEND}"
+    kill -9 $$
+  fi
+
+  /bin/cp catalina-jmx-remote.jar ${tomcat_install_dir}/lib
+  [ ! -d "${tomcat_install_dir}/lib/catalina" ] &&  mkdir ${tomcat_install_dir}/lib/catalina
+  pushd ${tomcat_install_dir}/lib/catalina
+  jar xf ../catalina.jar
+  sed -i 's@^server.info=.*@server.info=Tomcat@' org/apache/catalina/util/ServerInfo.properties
+  sed -i 's@^server.number=.*@server.number=8@' org/apache/catalina/util/ServerInfo.properties
+  sed -i "s@^server.built=.*@server.built=$(date)@" org/apache/catalina/util/ServerInfo.properties
+  jar cf ../catalina.jar ./*
+  popd
+  rm -rf ${tomcat_install_dir}/lib/catalina
+
+  pushd ${tomcat_install_dir}/bin
+  tar xzf tomcat-native.tar.gz
+  pushd tomcat-native-*-src/native
+    ./configure --with-apr=/usr/local/apr --with-ssl=${openssl_install_dir}
+    make -j ${THREAD} && make install
+  popd
+  rm -rf tomcat-native-*
+  if [ -e "/usr/local/apr/lib/libtcnative-1.la" ]; then
+    [ ${Mem} -le 768 ] && let Xms_Mem="${Mem}/3" || Xms_Mem=256
+    let XmxMem="${Mem}/2"
+    cat > ${tomcat_install_dir}/bin/setenv.sh << EOF
+JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms${Xms_Mem}m -Xmx${XmxMem}m -Dfile.encoding=UTF-8'
+CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
+# -Djava.rmi.server.hostname=$IPADDR
+# -Dcom.sun.management.jmxremote.password.file=\$CATALINA_BASE/conf/jmxremote.password
+# -Dcom.sun.management.jmxremote.access.file=\$CATALINA_BASE/conf/jmxremote.access
+# -Dcom.sun.management.jmxremote.ssl=false"
+EOF
+    chmod +x ./*.sh
+    /bin/mv ${tomcat_install_dir}/conf/server.xml{,_bk}
+    popd # goto ${oneinstack_dir}/src
+    /bin/cp ${oneinstack_dir}/config/server.xml ${tomcat_install_dir}/conf
+    sed -i "s@/usr/local/tomcat@${tomcat_install_dir}@g" ${tomcat_install_dir}/conf/server.xml
+
+    if [ ! -e "${nginx_install_dir}/sbin/nginx" -a ! -e "${tengine_install_dir}/sbin/nginx" -a ! -e "${apache_install_dir}/conf/httpd.conf" ]; then
+      if [ "${iptables_yn}" == 'y' ]; then
+        if [ "${OS}" == "CentOS" ]; then
+          if [ -z "$(grep -w '8080' /etc/sysconfig/iptables)" ]; then
+            iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
+            service iptables save
+          fi
+        elif [[ "${OS}" =~ ^Ubuntu$|^Debian$ ]]; then
+          if [ -z "$(grep -w '8080' /etc/iptables.up.rules)" ]; then
+            iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
+            iptables-save > /etc/iptables.up.rules
+          fi
+        fi
+      fi
+    fi
+
+    [ ! -d "${tomcat_install_dir}/conf/vhost" ] && mkdir ${tomcat_install_dir}/conf/vhost
+    cat > ${tomcat_install_dir}/conf/vhost/localhost.xml << EOF
+<Host name="localhost" appBase="${wwwroot_dir}/default" unpackWARs="true" autoDeploy="true">
+  <Context path="" docBase="${wwwroot_dir}/default" reloadable="false" crossContext="true"/>
+  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+    prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
+  <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For"
+    protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>
+</Host>
+EOF
+    # logrotate tomcat catalina.out
+    cat > /etc/logrotate.d/tomcat << EOF
+${tomcat_install_dir}/logs/catalina.out {
+  daily
+  rotate 5
+  missingok
+  dateext
+  compress
+  notifempty
+  copytruncate
+}
+EOF
+    [ -z "$(grep '<user username="admin" password=' ${tomcat_install_dir}/conf/tomcat-users.xml)" ] && sed -i "s@^</tomcat-users>@<role rolename=\"admin-gui\"/>\n<role rolename=\"admin-script\"/>\n<role rolename=\"manager-gui\"/>\n<role rolename=\"manager-script\"/>\n<user username=\"admin\" password=\"$(cat /dev/urandom | head -1 | md5sum | head -c 10)\" roles=\"admin-gui,admin-script,manager-gui,manager-script\"/>\n</tomcat-users>@" ${tomcat_install_dir}/conf/tomcat-users.xml
+    cat > ${tomcat_install_dir}/conf/jmxremote.access << EOF
+monitorRole   readonly
+controlRole   readwrite \
+              create javax.management.monitor.*,javax.management.timer.* \
+              unregister
+EOF
+    cat > ${tomcat_install_dir}/conf/jmxremote.password << EOF
+monitorRole  $(cat /dev/urandom | head -1 | md5sum | head -c 8)
+# controlRole   R&D
+EOF
+    chown -R ${run_user}.${run_user} ${tomcat_install_dir}
+    /bin/cp ${oneinstack_dir}/init.d/Tomcat-init /etc/init.d/tomcat
+    sed -i "s@JAVA_HOME=.*@JAVA_HOME=${JAVA_HOME}@" /etc/init.d/tomcat
+    sed -i "s@^CATALINA_HOME=.*@CATALINA_HOME=${tomcat_install_dir}@" /etc/init.d/tomcat
+    sed -i "s@^TOMCAT_USER=.*@TOMCAT_USER=${run_user}@" /etc/init.d/tomcat
+    [ "${OS}" == "CentOS" ] && { chkconfig --add tomcat; chkconfig tomcat on; }
+    [[ "${OS}" =~ ^Ubuntu$|^Debian$ ]] && update-rc.d tomcat defaults
+    echo "${CSUCCESS}Tomcat installed successfully! ${CEND}"
+    rm -rf apache-tomcat-${tomcat9_ver}
+  else
+    popd
+    echo "${CFAILURE}Tomcat install failed, Please contact the author! ${CEND}"
+  fi
+  service tomcat start
+  popd
+}

+ 3 - 1
versions.txt

@@ -5,7 +5,8 @@ tengine_ver=2.2.2
 openresty_ver=1.13.6.1
 openssl_ver=1.0.2n
 
-tomcat8_ver=8.5.28
+tomcat9_ver=9.0.6
+tomcat8_ver=8.5.29
 tomcat7_ver=7.0.85
 tomcat6_ver=6.0.53
 
@@ -37,6 +38,7 @@ pgsql_ver=10.3
 mongodb_ver=3.6.3
 
 # JDK
+jdk9_ver=9.0.4
 jdk18_ver=1.8.0_162
 jdk17_ver=1.7.0_80
 jdk16_ver=1.6.0_45