<?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>https://forum.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 "s/SELINUX=enforcing/SELINUX=disabled/" /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 "%V %h %l %u %t \"%r\" %&gt;s %b" vcommon 
<br>
&gt; LogFormat "%V %h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" vcombined 
<br>
492c495 
<br>
&lt; #LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 
<br>
--- 
<br>
&gt; LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" 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空一格然後打上一個雙引號"，接著貼上剛剛複製的鏈結網址，然後再打上另一個雙引號"，空一格後再打上-O jdk-6u7-linux-i586-rpm.bin，類似如下： 
<br>
cd /root/setup/web 
<br>
wget "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&amp;OrderID=5IFIBe.nqZUAAAEc8iwb.noe&amp;ProductID=XzBIBe.oxM4AAAEaVJcGcbZW&amp;FileName=/jdk-6u7-linux-i586-rpm.bin" -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 "6\.0\." /tmp/tomcat.html|grep -v "6\.0\.x"|cut -d"&gt;" -f2|cut -d"&lt;" -f1` 
<br>
fi 
<br>
rm -rf /tmp/tomcat.html 
<br>
<br>
echo "Install Tomcat ${TOMCAT_VERSION}" 
<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 "Use $JDK_VERSION" 
<br>
echo 'JAVA_HOME="/usr/java/'${JDK_VERSION}'" 
<br>
JAVA_OPTS="-server -XX:NewSize=64m -XX:MaxNewSize=64m -XX:MaxPermSize=128m -Xms1024m -Xmx1024m -Djava.awt.headless=true"' &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 "1\.2\." /tmp/connector.html|cut -d"&gt;" -f2|cut -d"&lt;" -f1 |awk '{print $2}'|grep "1.2"|uniq` 
<br>
fi 
<br>
rm -rf /tmp/connector.html 
<br>
echo "Install Tomcat Connector JK ${TOMCAT_CONNECTOR_VERSION}" 
<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 "1\.2\." /tmp/log4j.html|cut -d"&lt;" -f3|cut -d"&gt;" -f2|awk '{print $4}'` 
<br>
fi 
<br>
rm -rf /tmp/log4j.html 
<br>
echo "Install Log4J ${LOG4J_VERSION}" 
<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 "Release" /tmp/logging.html | grep -v "2006"|cut -d "&gt;" -f5|cut -d"&lt;" -f1|awk '{print $1}'|grep "1.1"` 
<br>
fi 
<br>
rm -rf /tmp/logging.html 
<br>
echo "Install Commons - Logging ${LOGGING_VERSION}" 
<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 "s/workerPort/8105/g" -e "s/shutdownCode/`head -1024c /dev/urandom | md5sum | cut -d " " -f1`/g" -e "s/ajpPort/8109/g" -e "s/workerNo/worker1/g" -e "s/mydomain/${hostname}/g" /tmp/server.header.template &gt; /var/robust/worker1/conf/server.header 
<br>
sed -e "s/workerPort/8205/g" -e "s/shutdownCode/`head -1024c /dev/urandom | md5sum | cut -d " " -f1`/g" -e "s/ajpPort/8209/g" -e "s/workerNo/worker2/g" -e "s/mydomain/${hostname}/g" /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 " " -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 "Your Tomcat Manager's login is 'manager', password is '${MANAGER_PASSWORD}'" 
<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 "/etc/httpd/conf/workers.properties" 
<br>
JkLogFile "|/usr/sbin/rotatelogs /var/log/httpd/mod_jk.log 86400" 
<br>
JkLogLevel info 
<br>
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" 
<br>
JkRequestLogFormat "%w %V %T" 
<br>
LogFormat "%h %l %u %t \"%r\" %&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" 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="/var/robust" 
<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 "Tomcat ${WORKER_LIST[i]} already started" 
<br>
 else 
<br>
 echo "Starting tomcat ${WORKER_LIST[i]}..." 
<br>
<br>
 CATALINA_BASE="$WORKER_ROOT/${WORKER_LIST[i]}" 
<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 "export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/startup.sh" 
<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 "Tomcat ${WORKER_LIST[i]} started in normal mode" 
<br>
 RETVAL=$? 
<br>
 [ $RETVAL = 0 ] &amp;&amp; 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 "Tomcat ${WORKER_LIST[i]} already started" 
<br>
 else 
<br>
 echo "Starting tomcat ${WORKER_LIST[i]} in debug mode..." 
<br>
<br>
 CATALINA_BASE="$WORKER_ROOT/${WORKER_LIST[i]}" 
<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 "export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/catalina.sh jpda start" 
<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 "Tomcat ${WORKER_LIST[i]} started in debug mode" 
<br>
 RETVAL=$? 
<br>
 [ $RETVAL = 0 ] &amp;&amp; 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 "Tomcat ${WORKER_LIST[i]} already stopped" 
<br>
 else 
<br>
 echo "Stopping tomcat ${WORKER_LIST[i]} ..." 
<br>
 CATALINA_BASE="$WORKER_ROOT/${WORKER_LIST[i]}" 
<br>
 su -l $TOMCAT_USER -c "export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/shutdown.sh" 
<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 "Tomcat ${WORKER_LIST[i]} stopped" 
<br>
 [ $RETVAL=0 ] &amp;&amp; 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 "Tomcat ${WORKER_LIST[i]} stopped" 
<br>
 else 
<br>
 MODE="normal" 
<br>
 JPDA_PORT=`netstat -vatn|grep LISTEN|grep 8000|wc -l` 
<br>
 if [ $JPDA_PORT -ne 0 ]; then 
<br>
 MODE="debug" 
<br>
 fi 
<br>
 echo "Tomcat ${WORKER_LIST[i]} running in $MODE mode" 
<br>
 fi 
<br>
 done 
<br>
} 
<br>
<br>
case "$1" 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 "Usage: $0 {start|debug|stop|restart|redebug|status}" 
<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 "service tomcat start" 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">https://forum.andowson.com/posts/preList/272/481.page</guid>
				<link>https://forum.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>