<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "CentOS 5.2上Apache 2.2 + Tomcat 6 + JK 1.2自動化安裝程式"]]></title>
		<link>http://www.andowson.com/posts/list/20.page</link>
		<description><![CDATA[Latest messages posted in the topic "CentOS 5.2上Apache 2.2 + Tomcat 6 + JK 1.2自動化安裝程式"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>CentOS 5.2上Apache 2.2 + Tomcat 6 + JK 1.2自動化安裝程式</title>
				<description><![CDATA[ [b]準備工作：[/b]<br /> 1.先安裝好CentOS 5.2 Linux作業系統，建議的硬碟分割配置如下：<br /> SWAP      2.0G(RAM小於2G時可以設為RAM的兩倍)<br /> /boot     100M<br /> /             2.0G<br /> /usr        3.0G<br /> /tmp       2.0G<br /> /var        8.0G<br /> /home    剩下來的部分<br /> <br /> 2.安裝完成後更新系統套件至最新版<br /> yum -y update<br /> <br /> 3.安裝wget以便於後續的自動安裝動作<br /> yum -y install wget<br /> <br /> [b]安裝Apache[/b]<br /> 1.安裝Apache套件<br /> yum -y install httpd<br /> <br /> 2.取消SELinux，可以參考這篇[url]http://www.crypt.gen.nz/selinux/disable_selinux.html[/url]<br /> echo 0 &gt;/selinux/enforce<br /> sed -i -e &quot;s/SELINUX=enforcing/SELINUX=disabled/&quot; /etc/sysconfig/selinux<br /> <br /> 3.利用先前的設定檔產生設定修改部分(先將設定檔上傳再改名字為/tmp/httpd.conf.old)<br /> diff /etc/httpd/conf/httpd.conf /tmp/httpd.conf.old &gt; diff.txt<br /> 如果是第一次安裝，可以下載本站的diff.txt<br /> [code]<br /> 44c44<br /> &lt; ServerTokens OS<br /> ---<br /> &gt; ServerTokens ProductOnly<br /> 74c74<br /> &lt; KeepAlive Off<br /> ---<br /> &gt; KeepAlive On<br /> 81c81<br /> &lt; MaxKeepAliveRequests 100<br /> ---<br /> &gt; MaxKeepAliveRequests 500<br /> 232c232<br /> &lt; Group apache<br /> ---<br /> &gt; Group tomcat<br /> 251c251<br /> &lt; ServerAdmin root@localhost<br /> ---<br /> &gt; ServerAdmin webmaster@your-domain.com<br /> 265a266<br /> &gt; ServerName 127.0.0.1:80<br /> 282c283<br /> &lt; <br /> ---<br /> &gt; VirtualDocumentRoot /var/webapps/%0<br /> 391c392<br /> &lt; DirectoryIndex index.html index.html.var<br /> ---<br /> &gt; DirectoryIndex sorry.html index.html index.htm default.html default.htm index.html.var index.jsp<br /> 488a490,491<br /> &gt; LogFormat &quot;%V %h %l %u %t \&quot;%r\&quot; %&gt;s %b&quot; vcommon<br /> &gt; LogFormat &quot;%V %h %l %u %t \&quot;%r\&quot; %&gt;s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot;&quot; vcombined<br /> 492c495<br /> &lt; #LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %&gt;s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot; %I %O&quot; combinedio<br /> ---<br /> &gt; LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %&gt;s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot; %I %O&quot; combinedio<br /> 514c517,518<br /> &lt; CustomLog logs/access_log combined<br /> ---<br /> &gt; CustomLog logs/access_log combinedio<br /> &gt; CustomLog logs/vhost.log vcombined<br /> 524c528<br /> &lt; ServerSignature On<br /> ---<br /> &gt; ServerSignature Off<br /> 747c751,752<br /> &lt; AddDefaultCharset UTF-8<br /> ---<br /> &gt; #AddDefaultCharset UTF-8<br /> &gt; AddDefaultCharset Big5<br /> 954a960,988<br /> &gt; &lt;Location /&gt;<br /> &gt;     # Insert filter<br /> &gt;     SetOutputFilter DEFLATE<br /> &gt;<br /> [/code]<br /> 記得修改一下ServerAdmin的your-domain.com為真正的網域名稱<br /> <br /> 4.備份原始的httpd.conf設定檔<br /> cp -rf /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.orig<br /> <br /> 5.套用設定檔的差異部分<br /> yum install -y patch<br /> patch -p2 /etc/httpd/conf/httpd.conf diff.txt<br /> <br /> 6.設定開機時自動啟動Apache<br /> chkconfig --add httpd<br /> chkconfig --level 35 httpd on<br /> <br /> 7.啟動Apache<br /> service httpd start<br /> <br /> [b]安裝JDK[/b]<br /> 1.利用瀏覽器，至http://java.sun.com點選Popular Downloads:區塊中的Java SE，<br /> 2.然後點選JDK 6 Update 7旁的Download按鈕，<br /> 3.接下來在Platform:選擇Linux，然後勾選I agree to the  Java SE Development Kit 6 License Agreement，按下Continue按鈕<br /> 4.在Java SE Development Kit 6u7下面的dk-6u7-linux-i586-rpm.bin連結上面按滑鼠右鍵，複製鏈結網址<br /> 5.然後切回到Linux的console畫面（假設是用PuTTY或PieTTY連上主機的），先輸入wget空一格然後打上一個雙引號&quot;，接著貼上剛剛複製的鏈結網址，然後再打上另一個雙引號&quot;，空一格後再打上-O jdk-6u7-linux-i586-rpm.bin，類似如下：<br /> cd /root/setup/web<br /> wget &quot;http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u7-linux-i586-rpm.bin?BundledLineItemUUID=LaNIBe.n_FQAAAEcAC0b.noe&OrderID=5IFIBe.nqZUAAAEc8iwb.noe&ProductID=XzBIBe.oxM4AAAEaVJcGcbZW&FileName=/jdk-6u7-linux-i586-rpm.bin&quot; -O jdk-6u7-linux-i586-rpm.bin<br /> 6.按下Enter後，便開始下載<br /> 7.然後用sh jdk-6u7-linux-i586-rpm.bin安裝它，可以利用echo 'yes'自動輸入畫面詢問的問題答案<br /> echo 'yes'|sh jdk-6u7-linux-i586-rpm.bin<br /> <br /> [b]安裝Tomcat[/b]<br /> 1.下載本站的tomcat-setup.sh後，利用chmod 755 tomcat-setup.sh更改為可執行，如日後有軟體版本更新，請自行修正一些路徑或相關版本數字<br /> [code]<br /> #!/bin/bash<br /> # Name: Tomcat 6.0.x auto installer<br /> # Author: Andowson Chang (andowson [at] gmail [dot] com)<br /> # Version: 3.7<br /> # Last Modified: 2008-09-19<br /> # Reference: http://www.meritonlinesystems.com/docs/apache_tomcat_redhat.html<br /> # Assumption: JDK must be installed on /usr/java<br /> # This program will<br /> # 1.check for the lastest stable version of Tomcat 6.0<br /> # 2.download apache-tomcat-6.0.x.tar.gz<br /> # 3.unpack it into /var/apache-tomcat-6.0.x<br /> # 4.make a symbolic link /var/tomcat6 to the above directory for easy upgrade<br /> #   to a later version<br /> # 5.check for the latest stable verion of Tomcat Connector 1.2<br /> # 6.download tomcat-connectors-1.2.x-src.tar.gz<br /> # 7.unpack it<br /> # 8.configure, make and make install<br /> # 9.create user tomcat with home directory /var/robust<br /> # 10.make two instances of tomcat for load balancing, here I put them under <br /> #    /var/robust/worker[1,2] for easy to backup all of them.<br /> # 11.generate cleanup.sh for easy to uninstall everything<br /> <br /> #<br /> # intranet workaround<br /> # If your server don't have Internet access, ie. in the intranet behind <br /> # a firewall, you have to download all the file manually first. Copy them <br /> # into ${SETUP_FILE_PATH}. And then change the following default version <br /> # number to the correct number you downloaded.<br /> #<br /> SETUP_FILE_PATH=/root/setup/web<br /> TOMCAT_VERSION=6.0.18<br /> TOMCAT_CONNECTOR_VERSION=1.2.26<br /> LOG4J_VERSION=1.2.15<br /> LOGGING_VERSION=1.1.1<br /> <br /> hostname=`/bin/hostname`<br /> mkdir -p ${SETUP_FILE_PATH}<br /> cd ${SETUP_FILE_PATH}<br /> <br /> #<br /> # check the latest stable version of Tomcat 6.0<br /> #<br /> wget http://tomcat.apache.org/ -q -t 1 -T 5 -O /tmp/tomcat.html<br /> if [ -s /tmp/tomcat.html ]; then<br />    TOMCAT_VERSION=`grep &quot;6\.0\.&quot; /tmp/tomcat.html|grep -v &quot;6\.0\.x&quot;|cut -d&quot;&gt;&quot; -f2|cut -d&quot;&lt;&quot; -f1`<br /> fi<br /> rm -rf /tmp/tomcat.html<br /> <br /> echo &quot;Install Tomcat ${TOMCAT_VERSION}&quot;<br /> if [ ! -r apache-tomcat-${TOMCAT_VERSION}.tar.gz ]; then<br />    wget http://apache.ntu.edu.tw/tomcat/tomcat-6/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz<br /> fi<br /> tar zxvf apache-tomcat-${TOMCAT_VERSION}.tar.gz -C /var<br /> ln -s /var/apache-tomcat-${TOMCAT_VERSION} /var/tomcat6<br /> <br /> echo 'rm -rf /var/apache-tomcat-'${TOMCAT_VERSION} &gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> echo 'rm -rf /var/tomcat6' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> JDK_VERSION=`ls /usr/java | grep jdk`<br /> echo &quot;Use $JDK_VERSION&quot;<br /> echo 'JAVA_HOME=&quot;/usr/java/'${JDK_VERSION}'&quot;<br /> JAVA_OPTS=&quot;-server -XX:NewSize=64m -XX:MaxNewSize=64m -XX:MaxPermSize=128m -Xms1024m -Xmx1024m -Djava.awt.headless=true&quot;' &gt; /var/tomcat6/bin/setenv.sh<br /> chmod 755 /var/tomcat6/bin/setenv.sh<br /> <br /> #<br /> # check the latest stable version of Tomcat Connector 1.2<br /> #<br /> # pre-requirment<br /> yum -y install httpd-devel libtool automake make<br /> <br /> wget http://tomcat.apache.org/download-connectors.cgi -q -t 1 -T 5 -O /tmp/connector.html<br /> if [ -s /tmp/connector.html ]; then<br />    TOMCAT_CONNECTOR_VERSION=`grep &quot;1\.2\.&quot; /tmp/connector.html|cut -d&quot;&gt;&quot; -f2|cut -d&quot;&lt;&quot; -f1 |awk '{print $2}'|grep &quot;1.2&quot;|uniq`<br /> fi<br /> rm -rf /tmp/connector.html<br /> echo &quot;Install Tomcat Connector JK ${TOMCAT_CONNECTOR_VERSION}&quot;<br /> if [ ! -r tomcat-connectors-${TOMCAT_CONNECTOR_VERSION}-src.tar.gz ]; then<br />    wget http://apache.ntu.edu.tw/tomcat/tomcat-connectors/jk/source/jk-${TOMCAT_CONNECTOR_VERSION}/tomcat-connectors-${TOMCAT_CONNECTOR_VERSION}-src.tar.gz<br /> fi<br /> tar zxvf tomcat-connectors-${TOMCAT_CONNECTOR_VERSION}-src.tar.gz<br /> cd tomcat-connectors-${TOMCAT_CONNECTOR_VERSION}-src/native<br /> ./buildconf.sh<br /> ./configure --with-apxs=/usr/sbin/apxs<br /> make<br /> make install<br /> cd ${SETUP_FILE_PATH}<br /> echo 'rm -rf /etc/httpd/modules/mod_jk.so' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> #<br /> # check the latest stable version of Log4J<br /> #<br /> wget http://logging.apache.org/log4j/1.2/download.html -q -t 1 -T 5 -O /tmp/log4j.html<br /> if [ -s /tmp/log4j.html ]; then<br />    LOG4J_VERSION=`grep &quot;1\.2\.&quot; /tmp/log4j.html|cut -d&quot;&lt;&quot; -f3|cut -d&quot;&gt;&quot; -f2|awk '{print $4}'`<br /> fi<br /> rm -rf /tmp/log4j.html<br /> echo &quot;Install Log4J ${LOG4J_VERSION}&quot;<br /> if [ ! -r logging-log4j-${LOG4J_VERSION}.tar.gz ]; then<br />    wget http://apache.ntu.edu.tw/logging/log4j/${LOG4J_VERSION}/apache-log4j-${LOG4J_VERSION}.tar.gz<br /> fi<br /> tar zxvf apache-log4j-${LOG4J_VERSION}.tar.gz<br /> cp -rf ${SETUP_FILE_PATH}/apache-log4j-${LOG4J_VERSION}/log4j-${LOG4J_VERSION}.jar /var/tomcat6/lib<br /> <br /> #<br /> # check the latest stable version of Commons - Logging<br /> #<br /> wget http://commons.apache.org/logging/ -q -t 1 -T 5 -O /tmp/logging.html<br /> if [ -s /tmp/logging.html ]; then<br />    LOGGING_VERSION=`grep &quot;Release&quot; /tmp/logging.html | grep -v &quot;2006&quot;|cut -d &quot;&gt;&quot; -f5|cut -d&quot;&lt;&quot; -f1|awk '{print $1}'|grep &quot;1.1&quot;`<br /> fi<br /> rm -rf /tmp/logging.html<br /> echo &quot;Install Commons - Logging ${LOGGING_VERSION}&quot;<br /> if [ ! -r commons-logging-${LOGGING_VERSION}-bin.tar.gz ]; then<br />    wget http://apache.ntu.edu.tw/commons/logging/binaries/commons-logging-${LOGGING_VERSION}-bin.tar.gz<br /> fi<br /> tar zxvf commons-logging-${LOGGING_VERSION}-bin.tar.gz<br /> cp -rf ${SETUP_FILE_PATH}/commons-logging-${LOGGING_VERSION}/commons-logging-${LOGGING_VERSION}.jar /var/tomcat6/lib<br /> <br /> #<br /> # generate log4j.properties<br /> #<br /> echo 'log4j.rootLogger=WARN, R<br /> log4j.appender.R=org.apache.log4j.RollingFileAppender<br /> log4j.appender.R.File=/var/robust/tomcat.log<br /> log4j.appender.R.MaxFileSize=10MB<br /> log4j.appender.R.MaxBackupIndex=10<br /> log4j.appender.R.layout=org.apache.log4j.PatternLayout<br /> log4j.appender.R.layout.ConversionPattern=%d{DATE} - %p %c - %m%n<br /> log4j.logger.org.apache.catalina=WARN, R' &gt; /var/tomcat6/lib/log4j.properties<br /> <br /> #<br /> # add user tomcat<br /> #<br /> useradd tomcat -d /var/robust<br /> echo 'userdel -r tomcat' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> #<br /> # setup workers' directory<br /> #<br /> mkdir -p /var/robust/worker1/logs<br /> mkdir -p /var/robust/worker1/temp<br /> mkdir -p /var/robust/worker1/work<br /> cp -rf /var/tomcat6/conf /var/robust/worker1/conf<br /> mkdir -p /var/webapps<br /> ln -s /var/webapps /var/robust/worker1/webapps<br /> cp -rf /var/robust/worker1 /var/robust/worker2<br /> <br /> #<br /> # setup default host directory<br /> #<br /> mkdir -p /var/webapps/${hostname}<br /> cp -rf /var/tomcat6/webapps/ROOT/* /var/webapps/${hostname}/.<br /> mkdir -p /var/robust/worker1/conf/Catalina/${hostname}<br /> mkdir -p /var/robust/worker2/conf/Catalina/${hostname}<br /> cp -rf /var/tomcat6/webapps/host-manager/manager.xml /var/robust/worker1/conf/Catalina/${hostname}<br /> cp -rf /var/tomcat6/webapps/host-manager/manager.xml /var/robust/worker2/conf/Catalina/${hostname}<br /> <br /> #<br /> # generate server.xml<br /> #<br /> echo '&lt;Server port="workerPort" shutdown="shutdownCode"&gt;<br /> <br />   &lt;GlobalNamingResources&gt;<br />     &lt;!-- Used by Manager webapp --&gt;<br />     &lt;Resource name="UserDatabase" auth="Container"<br />               type="org.apache.catalina.UserDatabase"<br />        description="User database that can be updated and saved"<br />            factory="org.apache.catalina.users.MemoryUserDatabaseFactory"<br />           pathname="conf/tomcat-users.xml" /&gt;<br />   &lt;/GlobalNamingResources&gt;<br /> <br />   &lt;Service name="Catalina"&gt;<br />     &lt;!-- Define an AJP 1.3 Connector on port ajpPort --&gt;<br />     &lt;Connector port="ajpPort" address="127.0.0.1"<br />                enableLookups="false" maxThreads="1000"<br />                protocol="AJP/1.3" /&gt;<br /> <br />     &lt;Engine jvmRoute="workerNo" name="Catalina"<br />             defaultHost="mydomain"&gt;<br />       &lt;Realm className="org.apache.catalina.realm.UserDatabaseRealm"<br />              resourceName="UserDatabase" /&gt;' &gt; /tmp/server.header.template<br /> <br /> sed -e &quot;s/workerPort/8105/g&quot; -e &quot;s/shutdownCode/`head -1024c /dev/urandom | md5sum | cut -d &quot; &quot; -f1`/g&quot; -e &quot;s/ajpPort/8109/g&quot; -e &quot;s/workerNo/worker1/g&quot; -e &quot;s/mydomain/${hostname}/g&quot; /tmp/server.header.template &gt; /var/robust/worker1/conf/server.header<br /> sed -e &quot;s/workerPort/8205/g&quot; -e &quot;s/shutdownCode/`head -1024c /dev/urandom | md5sum | cut -d &quot; &quot; -f1`/g&quot; -e &quot;s/ajpPort/8209/g&quot; -e &quot;s/workerNo/worker2/g&quot; -e &quot;s/mydomain/${hostname}/g&quot; /tmp/server.header.template &gt; /var/robust/worker2/conf/server.header<br /> rm -rf /tmp/server.header.template<br /> <br /> echo '      &lt;Host name="'${hostname}'"<br />             appBase="webapps/'${hostname}'"<br />             unpackWARs="true" autoDeploy="true"&gt;<br />         &lt;Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"<br />                directory="logs"  prefix="'${hostname}'_access_log."<br />                suffix=".txt" pattern="combined" resolveHosts="false"/&gt;<br />         &lt;Context path="" docBase="" reloadable="false" /&gt;<br />       &lt;/Host&gt;' &gt; /var/robust/worker1/conf/server.host<br /> <br /> cp -rf /var/robust/worker1/conf/server.host /var/robust/worker2/conf/server.host<br /> <br /> echo '    &lt;/Engine&gt;<br /> <br />   &lt;/Service&gt;<br /> <br /> &lt;/Server&gt;' &gt; /var/robust/worker1/conf/server.footer<br /> <br /> cp -rf /var/robust/worker1/conf/server.footer /var/robust/worker2/conf/server.footer<br /> <br /> <br /> <br /> cd /var/robust/worker1/conf<br /> cat server.header server.host server.footer &gt; server.xml<br /> cd /var/robust/worker2/conf<br /> cat server.header server.host server.footer &gt; server.xml<br /> <br /> #<br /> # generate tomcat-users.xml<br /> #<br /> MANAGER_PASSWORD=`head -1024c /dev/urandom | md5sum | cut -d &quot; &quot; -f1 | awk '{print substr($1,1,8)}'`<br /> echo '&lt;tomcat-users&gt;<br />   &lt;user username="manager" password="'${MANAGER_PASSWORD}'" roles="manager"/&gt;<br /> &lt;/tomcat-users&gt;' &gt; /var/robust/worker1/conf/tomcat-users.xml<br /> echo<br /> echo &quot;Your Tomcat Manager's login is 'manager', password is '${MANAGER_PASSWORD}'&quot;<br /> echo<br /> cp -rf /var/robust/worker1/conf/tomcat-users.xml /var/robust/worker2/conf/tomcat-users.xml<br /> <br /> chmod 600 /var/robust/worker*/conf/server.*<br /> chmod 600 /var/robust/worker*/conf/tomcat-users.xml<br /> chown -R tomcat:tomcat /var/apache-tomcat-*<br /> chown -R tomcat:tomcat /var/robust<br /> <br /> #<br /> # generate mod_jk.conf<br /> #<br /> echo 'LoadModule jk_module modules/mod_jk.so<br /> <br /> JkWorkersFile &quot;/etc/httpd/conf/workers.properties&quot;<br /> JkLogFile     &quot;|/usr/sbin/rotatelogs /var/log/httpd/mod_jk.log 86400&quot;<br /> JkLogLevel info<br /> JkLogStampFormat &quot;[%a %b %d %H:%M:%S %Y]&quot;<br /> JkRequestLogFormat     &quot;%w %V %T&quot;<br /> LogFormat     &quot;%h %l %u %t \&quot;%r\&quot; %&gt;s %b %{JK_WORKER_NAME}n %{JK_LB_FIRST_NAME}n %{JK_LB_FIRST_BUSY}n %{JK_LB_LAST_NAME}n %{JK_LB_LAST_BUSY}n&quot; mod_jk_log<br /> CustomLog     logs/worker_access_log     mod_jk_log<br /> <br /> JkMount /*.jsp loadbalancer<br /> JkMount /*.do loadbalancer<br /> JkMount /*.page loadbalancer<br /> JkMount /dwr/* loadbalancer<br /> JkMount /servlet/* loadbalancer<br /> JkMount /manager/* loadbalancer<br /> <br /> # Deny direct access to WEB-INF<br /> &lt;LocationMatch ".*WEB-INF.*"&gt;<br />     deny from all<br /> &lt;/LocationMatch&gt;' &gt; /etc/httpd/conf.d/mod_jk.conf<br /> echo 'rm -rf /etc/httpd/conf.d/mod_jk.conf' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> #<br /> # generate workers.properties<br /> #<br /> echo '# workers.properties - ajp13<br /> #<br /> # List workers<br /> worker.list=worker1, worker2, loadbalancer, jkstatus<br /> <br /> #<br /> # Define worker1<br /> #<br /> worker.worker1.type=ajp13<br /> worker.worker1.host=localhost<br /> worker.worker1.port=8109<br /> worker.worker1.socket_timeout=1200<br /> worker.worker1.connection_pool_size=1<br /> worker.worker1.connection_pool_timeout=1300<br /> worker.worker1.lbfactor=1<br /> # Define prefered failover node for worker1<br /> worker.worker1.redirect=worker2<br /> <br /> #<br /> # Define worker2<br /> #<br /> worker.worker2.type=ajp13<br /> worker.worker2.host=localhost<br /> worker.worker2.port=8209<br /> worker.worker2.socket_timeout=1200<br /> worker.worker2.connection_pool_size=1<br /> worker.worker2.connection_pool_timeout=1300<br /> worker.worker2.lbfactor=1<br /> # Disable worker2 for all requests except failover<br /> worker.worker2.activation=false<br /> <br /> #<br /> # Defining a load balancer<br /> #<br /> worker.loadbalancer.type=lb<br /> worker.loadbalancer.balance_workers=worker1, worker2<br /> <br /> #<br /> # Define status worker<br /> #<br /> worker.jkstatus.type=status' &gt; /etc/httpd/conf/workers.properties<br /> echo 'rm -rf /etc/httpd/conf/workers.properties' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> #<br /> # generate tomcat startup script<br /> #<br /> echo '#!/bin/sh<br /> #<br /> # Startup script for Tomcat, the Apache Servlet Engine<br /> #<br /> # chkconfig: 345 86 14<br /> # description: Tomcat Servlet Engine<br /> # processname: tomcat<br /> # pidfile: /var/run/worker1.pid /var/run/worker2.pid<br /> <br /> # Source function library.<br /> . /etc/rc.d/init.d/functions<br /> <br /> # User under which tomcat will run<br /> TOMCAT_USER=tomcat<br /> <br /> RETVAL=0<br /> <br /> CATALINA_HOME=/var/tomcat6<br /> WORKER_ROOT=&quot;/var/robust&quot;<br /> WORKER_LIST=( worker1 worker2 )<br /> WORKER_PORT=( 8105 8205 )<br /> <br /> # start, debug, stop, and status functions<br /> start() {<br />   # Start Tomcat in normal mode<br />   for (( i = 0 ; i &lt; ${#WORKER_LIST[@]} ; i++ ))<br />   do<br />     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />     if [ $SHUTDOWN_PORT -ne 0 ]; then<br />         echo &quot;Tomcat ${WORKER_LIST[i]} already started&quot;<br />     else<br />         echo &quot;Starting tomcat ${WORKER_LIST[i]}...&quot;<br /> <br />         CATALINA_BASE=&quot;$WORKER_ROOT/${WORKER_LIST[i]}&quot;<br />         rm -rf $CATALINA_BASE/work/*<br /> <br />         chown -R $TOMCAT_USER:$TOMCAT_USER $CATALINA_HOME<br />         chown -R $TOMCAT_USER:$TOMCAT_USER $WORKER_ROOT<br />         su -l $TOMCAT_USER -c &quot;export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/startup.sh&quot;<br />         SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />         while [ $SHUTDOWN_PORT -eq 0 ]; do<br />             sleep 1<br />             SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />         done<br />         echo &quot;Tomcat ${WORKER_LIST[i]} started in normal mode&quot;<br />         RETVAL=$?<br />         [ $RETVAL = 0 ] && touch /var/lock/subsys/${WORKER_LIST[i]} /var/run/${WORKER_LIST[i]}.pid<br />     fi<br />   done<br /> }<br /> <br /> debug() {<br />   # Start Tomcat in debug mode<br />   for (( i = 0 ; i &lt; ${#WORKER_LIST[@]} ; i++ ))<br />   do<br />     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />     if [ $SHUTDOWN_PORT -ne 0 ]; then<br />         echo &quot;Tomcat ${WORKER_LIST[i]} already started&quot;<br />     else<br />         echo &quot;Starting tomcat ${WORKER_LIST[i]} in debug mode...&quot;<br /> <br />         CATALINA_BASE=&quot;$WORKER_ROOT/${WORKER_LIST[i]}&quot;<br />         rm -rf $CATALINA_BASE/work/*<br /> <br />         chown -R $TOMCAT_USER:$TOMCAT_USER $CATALINA_HOME<br />         chown -R $TOMCAT_USER:$TOMCAT_USER $WORKER_ROOT<br />         su -l $TOMCAT_USER -c &quot;export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/catalina.sh jpda start&quot;<br />         SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />         while [ $SHUTDOWN_PORT -eq 0 ]; do<br />             sleep 1<br />             SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />         done<br />         echo &quot;Tomcat ${WORKER_LIST[i]} started in debug mode&quot;<br />         RETVAL=$?<br />         [ $RETVAL = 0 ] && touch /var/lock/subsys/${WORKER_LIST[i]} /var/run/${WORKER_LIST[i]}.pid<br />     fi<br />   done<br /> }<br /> <br /> stop() {<br />   for (( i = 0 ; i &lt; ${#WORKER_LIST[@]} ; i++ ))<br />   do<br />     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />     if [ $SHUTDOWN_PORT -eq 0 ]; then<br />         echo &quot;Tomcat ${WORKER_LIST[i]} already stopped&quot;<br />     else<br />         echo &quot;Stopping tomcat ${WORKER_LIST[i]} ...&quot;<br />         CATALINA_BASE=&quot;$WORKER_ROOT/${WORKER_LIST[i]}&quot;<br />         su -l $TOMCAT_USER -c &quot;export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/shutdown.sh&quot;<br /> 	      SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />         while [ $SHUTDOWN_PORT -ne 0 ]; do<br />             sleep 1<br />             SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />         done<br /> 	      RETVAL=$?<br />         echo &quot;Tomcat ${WORKER_LIST[i]} stopped&quot;<br />         [ $RETVAL=0 ] && rm -f /var/lock/subsys/${WORKER_LIST[i]} /var/run/${WORKER_LIST[i]}.pid<br />     fi<br />   done<br /> }<br /> <br /> status() {<br />   for (( i = 0 ; i &lt; ${#WORKER_LIST[@]} ; i++ ))<br />   do<br />     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT[i]}|wc -l`<br />     if [ $SHUTDOWN_PORT -eq 0 ]; then<br />         echo &quot;Tomcat ${WORKER_LIST[i]} stopped&quot;<br />     else<br />         MODE=&quot;normal&quot;<br />         JPDA_PORT=`netstat -vatn|grep LISTEN|grep 8000|wc -l`<br />         if [ $JPDA_PORT -ne 0 ]; then<br />             MODE=&quot;debug&quot;<br />         fi<br /> 	      echo &quot;Tomcat ${WORKER_LIST[i]} running in $MODE mode&quot;<br />     fi<br />   done<br /> }<br /> <br /> case &quot;$1&quot; in<br />   start)<br />         start<br />         ;;<br />   debug)<br />         debug<br />         ;;<br />   stop)<br />         stop<br />         ;;<br />   restart)<br />         stop<br />         start<br />         ;;<br />   redebug)<br />         stop<br />         debug<br />         ;;<br />   status)<br />   	status<br /> 	;;<br />   *)<br /> 	echo &quot;Usage: $0 {start|debug|stop|restart|redebug|status}&quot;<br /> 	exit 1<br /> esac<br /> <br /> exit $RETVAL' &gt; /etc/rc.d/init.d/tomcat<br /> <br /> chmod 755 /etc/rc.d/init.d/tomcat<br /> chkconfig --add tomcat<br /> chkconfig tomcat on<br /> <br /> echo 'chkconfig tomcat off' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> echo 'chkconfig --del tomcat' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> echo 'rm -rf /etc/init.d/tomcat' &gt;&gt; ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> chmod 755 ${SETUP_FILE_PATH}/cleanup.sh<br /> <br /> echo 'Tomcat installation is completed!'<br /> echo<br /> echo 'You can type &quot;service tomcat start&quot; to start using tomcat now.'<br /> echo 'Open a browser, and go to http://'${hostname}' to see it.'<br /> [/code]<br /> <br /> 2.啟動Tomcat<br /> service tomcat start<br /> <br /> 3.重新啟動Apache<br /> service httpd restart<br /> <br /> 參考資料：<br /> [url=http://phorum.study-area.org/index.php/topic,17120.msg83001.html#msg83001]Apache Virtual Host 最簡單的做法 (含 DNS,讓你建目錄等於建虛擬主機 )[/url]<br /> [url=http://www.crypt.gen.nz/selinux/disable_selinux.html]How to Disable SELinux[/url]<br /> [url=http://www.meritonlinesystems.com/docs/apache_tomcat_redhat.html]Integrating Tomcat and Apache on Red Hat Linux[/url]]]></description>
				<guid isPermaLink="true">http://www.andowson.com/posts/preList/272/481.page</guid>
				<link>http://www.andowson.com/posts/preList/272/481.page</link>
				<pubDate><![CDATA[Sat, 20 Sep 2008 12:00:55]]> GMT</pubDate>
				<author><![CDATA[ andowson]]></author>
			</item>
	</channel>
</rss>
