[原创]源码安装apache2和jk,并且成功整合了apache和tomcat

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
wwdlyx
帖子: 85
注册时间: 2006-11-20 17:26
来自: 福建厦门
联系:

[原创]源码安装apache2和jk,并且成功整合了apache和tomcat

#1

帖子 wwdlyx » 2007-11-14 11:31

应公司需求,最新都在搞服务器配置,因为挺新欢ubuntu的(关键是免费又好用),所以服务器上的系统我都用ubuntu6.10,之前只安装了mysql和tomcat,开了个web服务就够了,但是看了精华区happybombman
写的《Apache与Tomcat整合的问题》,抱着学习的态度也跟着配置了一番,可能是我没有看懂happybombman兄弟的本意,领会不到,反正我是按部就班的配置下来,最后还是以失败告终,无法解析jsp文件。后来到网上找了些资料,自己动手配置了一下,终于可以解析了,所以再次发表了这篇《源码安装apache2和jk,并且成功整合了apache和tomcat》,供新手们学习,并且抱着学习的态度希望高手们指导指导,谢谢!

1、到Apache官方网站下载所需要的文件:
jakarta-tomcat-connectors-1.2.15-src.tar.gz (最新版本好像是2.×了,下载最新的不能整合成功,所以下载较早的版本,毕竟整合是最终目的,不管版本新旧了)
httpd-2.2.6.tar.gz (apache最新的)
apache-tomcat-6.0.14.tar.gz(tomcat也是最新的)
下载地址:
http://archive.apache.org/dist/ (很多自己找)

2、安装apache-tomcat(其实这个不是重点,但是为了照顾像我这样的新手,我还是弄详细点)

(1)解压后保存到/usr底下。
shell> tar -zxvf apache*.gz(文件名)
shell> mv apache*(文件名) /usr/

(2)、使用jsvc以普通用户在80端口运行tomcat5
安装autoconf #安装jsvs时提示要装的,没有办法就装咯
apt-get install autoconf

(3).安装jsvc

#cd /usr/apache-tomcat-6.0.14/bin
#tar -xvfz jsvc.tar.gz
#cd jsvc-src
#sh support/buildconf.sh
#chmod 755 configure
#./configure --with-java=/usr/jdk1.6.0 (改成你的JDK的位置)
#make

2、添加脚本让tomcat自动启动 #这个是我之前发帖求助的,但是最终没有得到完美的答复,最后还是请教朋友的
#useradd tomcat 添加用户

#chown -R tomcat /usr/apache-tomcat-6.0.14
设置用户tomcat对tomcat的权限

#cp /usr/apache-tomcat-6.0.14/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
移动文件tomcat5.sh到/etc/init.d/里面并改名为tomcat

#chmod 755 /etc/init.d/tomcat
#vi /etc/init.d/tomcat

修改脚本为如下内容

#!/bin/sh
##############################################################################
#
# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#
# Adapt the following lines to your configuration
JAVA_HOME=/usr/jdk1.6.0
CATALINA_HOME=/usr/apache-tomcat-6.0.14
DAEMON_HOME=/usr/apache-tomcat-6.0.14/bin
TOMCAT_USER=tomcat

# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/usr/apache-tomcat-6.0.14

CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar

case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;

stop)
#
# Stop Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;

*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac





(3)、设置tomcat为自启动
Tomcat自启动
ln -s /etc/init.d/tomcat /etc/rc0.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc1.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc2.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc3.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc4.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc5.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc6.d/K20tomcat6


(4)、把默认的网站目录屏蔽了,配置apache-tomcat虚拟主机
shell> vim /usr/apache-tomcat-6.0.14/conf/server.xml

在</Host>下添加
</Host>

<Host name="amoyrico" appBase="/home/www/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"
workDir="/home/www/work">
<Context privileged="true" crossContext="true" docBase="htdocs" path="/" reloadable="true">
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/home/www/logs" prefix="access_log." suffix=".log" pattern="combined" resolveHosts="false"/>
</Host>



屏蔽默认的网站目录方法:
在 </Host>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
这两段前后添加屏蔽符号
<!--
-->


3、安装Apache

# tar xzvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure ——prefix=/usr/apache2 ——enable-so
# make
# make install

4、编译生成mod_jk。

# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure ——with-apxs=/usr/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/apache2/modules/

5、配置

在/usr/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

# vi mod_jk.conf

  添加以下内容:

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
# Where to put jk logs
#JkLogFile /usr/local/apache2/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1


# vi workers.properties

添加以下内容:

# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

6、再配置httpd.conf,作以下修改:

  将Listen 80 修改为 Listen 127.0.0.1:80

  将ServerName 修改为 ServerName LocalHost:80

  在DirectoryIndex中添加 index.jsp

  我的网页放在/home/www/webapps/htdocs/下,所以要修改DocumentRoot

DocumentRoot "/home/www/webapps/htdocs/"
<Directory "/home/www/webapps/htdocs/">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
</Directory>
<Directory "/home/www/webapps/htdocs/">
Order deny,allow
Deny from all
</Directory>
  增加关于加载mod_jk的语句:

  LoadModule jk_module modules/mod_jk.so

  Include /usr/apache2/conf/mod_jk.conf

7、在/home/www/webapps/htdocs/下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,就可以看到正确的页面了。


最后在提醒一下新手,安装tomcat之前要先装好jdk,还是把方法也写下吧。
安装jdk-6-linux-i586.bin。 (一个bin文件,网上下载的,地址忘记了,搜索下很多。)
shell> chmod +x jdk-6-linux-i586.bin
shell> ./jdk-6-linux-i586.bin
把解压出来的文件复制到/usr底下。
环境变量配置有三种方法(分别是:修改/etc/profile文件,修改用户目录下的.bashrc文件,直接在shell下修改)
我是修改/etc/profile

vim /etc/profile

添加:
export JAVA_HOME=/usr/jdk1.6.0
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

退出重新登入!
查看环境变量
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
头像
wwdlyx
帖子: 85
注册时间: 2006-11-20 17:26
来自: 福建厦门
联系:

#2

帖子 wwdlyx » 2007-11-15 9:43

写得这么辛苦,居然没有一个人回复。艾
toicine
帖子: 20
注册时间: 2007-10-31 18:42

#3

帖子 toicine » 2007-11-16 22:37

现在还是学生 刚好学到JSP 现在刚接触U 关于配置服务器方面很多都不懂
这贴帮我解决了 不少问题 呵呵 但是还是有点地方看不懂
(3)、设置tomcat为自启动
Tomcat自启动
ln -s /etc/init.d/tomcat /etc/rc0.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc1.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc2.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc3.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc4.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc5.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc6.d/K20tomcat6
这里是什么意思?在那设置的?
还有楼主用什么软件网页设计的?以前用DW的 现在用linux感觉很迷茫
头像
wwdlyx
帖子: 85
注册时间: 2006-11-20 17:26
来自: 福建厦门
联系:

#4

帖子 wwdlyx » 2007-11-17 11:05

toicine 写了:现在还是学生 刚好学到JSP 现在刚接触U 关于配置服务器方面很多都不懂
这贴帮我解决了 不少问题 呵呵 但是还是有点地方看不懂
(3)、设置tomcat为自启动
Tomcat自启动
ln -s /etc/init.d/tomcat /etc/rc0.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc1.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc2.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc3.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc4.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc5.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc6.d/K20tomcat6
这里是什么意思?在那设置的?
还有楼主用什么软件网页设计的?以前用DW的 现在用linux感觉很迷茫
直接在命令行输入就可以了
欢迎访问我的qzone
http://21351142.qzone.qq.com
欢迎访问我的blog
http://wuwd.blog.ubuntu.org.cn
头像
cocomama
帖子: 869
注册时间: 2007-04-05 17:57
来自: 吉林──>海南──>大连──>延边──>北京──>德黑兰──>(x,y)

#5

帖子 cocomama » 2007-11-17 11:09

支持 过两天试试 现在先不动弹~~~ :lol:
沒有人成全我的今天
亦没有人阻挡我的明天
输掉一个现在
我要赢得一个未来!

如果输了今生那么我也不要来世!

坐而論道,不如起而行動!

海至尽头天是岸 山到高处人为峰!
dnlzsy
帖子: 6
注册时间: 2007-11-01 22:34

Re: [原创]源码安装apache2和jk,并且成功整合了apache和tomcat

#6

帖子 dnlzsy » 2007-11-17 13:47

apt-get install apache2 tomcat5.5以后默认就可以自启动的啊,还需要那么辛苦吗?
最新的tomcat5.5和apache2.2推荐使用apache proxy整合了,
只要enable apache 的proxy,
在site conf里配置上
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
这样就可以了啊

wwdlyx 写了:应公司需求,最新都在搞服务器配置,因为挺新欢ubuntu的(关键是免费又好用),所以服务器上的系统我都用ubuntu6.10,之前只安装了mysql和tomcat,开了个web服务就够了,但是看了精华区happybombman
写的《Apache与Tomcat整合的问题》,抱着学习的态度也跟着配置了一番,可能是我没有看懂happybombman兄弟的本意,领会不到,反正我是按部就班的配置下来,最后还是以失败告终,无法解析jsp文件。后来到网上找了些资料,自己动手配置了一下,终于可以解析了,所以再次发表了这篇《源码安装apache2和jk,并且成功整合了apache和tomcat》,供新手们学习,并且抱着学习的态度希望高手们指导指导,谢谢!

1、到Apache官方网站下载所需要的文件:
jakarta-tomcat-connectors-1.2.15-src.tar.gz (最新版本好像是2.×了,下载最新的不能整合成功,所以下载较早的版本,毕竟整合是最终目的,不管版本新旧了)
httpd-2.2.6.tar.gz (apache最新的)
apache-tomcat-6.0.14.tar.gz(tomcat也是最新的)
下载地址:
http://archive.apache.org/dist/ (很多自己找)

2、安装apache-tomcat(其实这个不是重点,但是为了照顾像我这样的新手,我还是弄详细点)

(1)解压后保存到/usr底下。
shell> tar -zxvf apache*.gz(文件名)
shell> mv apache*(文件名) /usr/

(2)、使用jsvc以普通用户在80端口运行tomcat5
安装autoconf #安装jsvs时提示要装的,没有办法就装咯
apt-get install autoconf

(3).安装jsvc

#cd /usr/apache-tomcat-6.0.14/bin
#tar -xvfz jsvc.tar.gz
#cd jsvc-src
#sh support/buildconf.sh
#chmod 755 configure
#./configure --with-java=/usr/jdk1.6.0 (改成你的JDK的位置)
#make

2、添加脚本让tomcat自动启动 #这个是我之前发帖求助的,但是最终没有得到完美的答复,最后还是请教朋友的
#useradd tomcat 添加用户

#chown -R tomcat /usr/apache-tomcat-6.0.14
设置用户tomcat对tomcat的权限

#cp /usr/apache-tomcat-6.0.14/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
移动文件tomcat5.sh到/etc/init.d/里面并改名为tomcat

#chmod 755 /etc/init.d/tomcat
#vi /etc/init.d/tomcat

修改脚本为如下内容

#!/bin/sh
##############################################################################
#
# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#
# Adapt the following lines to your configuration
JAVA_HOME=/usr/jdk1.6.0
CATALINA_HOME=/usr/apache-tomcat-6.0.14
DAEMON_HOME=/usr/apache-tomcat-6.0.14/bin
TOMCAT_USER=tomcat

# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/usr/apache-tomcat-6.0.14

CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar

case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;

stop)
#
# Stop Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;

*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac





(3)、设置tomcat为自启动
Tomcat自启动
ln -s /etc/init.d/tomcat /etc/rc0.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc1.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc2.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc3.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc4.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc5.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc6.d/K20tomcat6


(4)、把默认的网站目录屏蔽了,配置apache-tomcat虚拟主机
shell> vim /usr/apache-tomcat-6.0.14/conf/server.xml

在</Host>下添加
</Host>

<Host name="amoyrico" appBase="/home/www/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"
workDir="/home/www/work">
<Context privileged="true" crossContext="true" docBase="htdocs" path="/" reloadable="true">
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/home/www/logs" prefix="access_log." suffix=".log" pattern="combined" resolveHosts="false"/>
</Host>



屏蔽默认的网站目录方法:
在 </Host>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
这两段前后添加屏蔽符号
<!--
-->


3、安装Apache

# tar xzvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure ——prefix=/usr/apache2 ——enable-so
# make
# make install

4、编译生成mod_jk。

# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure ——with-apxs=/usr/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/apache2/modules/

5、配置

在/usr/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

# vi mod_jk.conf

  添加以下内容:

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
# Where to put jk logs
#JkLogFile /usr/local/apache2/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1


# vi workers.properties

添加以下内容:

# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

6、再配置httpd.conf,作以下修改:

  将Listen 80 修改为 Listen 127.0.0.1:80

  将ServerName 修改为 ServerName LocalHost:80

  在DirectoryIndex中添加 index.jsp

  我的网页放在/home/www/webapps/htdocs/下,所以要修改DocumentRoot

DocumentRoot "/home/www/webapps/htdocs/"
<Directory "/home/www/webapps/htdocs/">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
</Directory>
<Directory "/home/www/webapps/htdocs/">
Order deny,allow
Deny from all
</Directory>
  增加关于加载mod_jk的语句:

  LoadModule jk_module modules/mod_jk.so

  Include /usr/apache2/conf/mod_jk.conf

7、在/home/www/webapps/htdocs/下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,就可以看到正确的页面了。


最后在提醒一下新手,安装tomcat之前要先装好jdk,还是把方法也写下吧。
安装jdk-6-linux-i586.bin。 (一个bin文件,网上下载的,地址忘记了,搜索下很多。)
shell> chmod +x jdk-6-linux-i586.bin
shell> ./jdk-6-linux-i586.bin
把解压出来的文件复制到/usr底下。
环境变量配置有三种方法(分别是:修改/etc/profile文件,修改用户目录下的.bashrc文件,直接在shell下修改)
我是修改/etc/profile

vim /etc/profile

添加:
export JAVA_HOME=/usr/jdk1.6.0
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

退出重新登入!
查看环境变量
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
toicine
帖子: 20
注册时间: 2007-10-31 18:42

#7

帖子 toicine » 2007-11-20 0:30

为什么我整合后 运行html就正常
但是运行JSP文件就有问题?
提示
Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
那里错了 ?
头像
wwdlyx
帖子: 85
注册时间: 2006-11-20 17:26
来自: 福建厦门
联系:

#8

帖子 wwdlyx » 2007-11-21 10:27

toicine 写了:为什么我整合后 运行html就正常
但是运行JSP文件就有问题?
提示
Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
那里错了 ?
你是用什么用户启动的服务?试试root
欢迎访问我的qzone
http://21351142.qzone.qq.com
欢迎访问我的blog
http://wuwd.blog.ubuntu.org.cn
头像
wwdlyx
帖子: 85
注册时间: 2006-11-20 17:26
来自: 福建厦门
联系:

Re: [原创]源码安装apache2和jk,并且成功整合了apache和tomcat

#9

帖子 wwdlyx » 2007-11-21 10:29

dnlzsy 写了:apt-get install apache2 tomcat5.5以后默认就可以自启动的啊,还需要那么辛苦吗?
最新的tomcat5.5和apache2.2推荐使用apache proxy整合了,
只要enable apache 的proxy,
在site conf里配置上
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
这样就可以了啊

wwdlyx 写了:应公司需求,最新都在搞服务器配置,因为挺新欢ubuntu的(关键是免费又好用),所以服务器上的系统我都用ubuntu6.10,之前只安装了mysql和tomcat,开了个web服务就够了,但是看了精华区happybombman
写的《Apache与Tomcat整合的问题》,抱着学习的态度也跟着配置了一番,可能是我没有看懂happybombman兄弟的本意,领会不到,反正我是按部就班的配置下来,最后还是以失败告终,无法解析jsp文件。后来到网上找了些资料,自己动手配置了一下,终于可以解析了,所以再次发表了这篇《源码安装apache2和jk,并且成功整合了apache和tomcat》,供新手们学习,并且抱着学习的态度希望高手们指导指导,谢谢!

1、到Apache官方网站下载所需要的文件:
jakarta-tomcat-connectors-1.2.15-src.tar.gz (最新版本好像是2.×了,下载最新的不能整合成功,所以下载较早的版本,毕竟整合是最终目的,不管版本新旧了)
httpd-2.2.6.tar.gz (apache最新的)
apache-tomcat-6.0.14.tar.gz(tomcat也是最新的)
下载地址:
http://archive.apache.org/dist/ (很多自己找)

2、安装apache-tomcat(其实这个不是重点,但是为了照顾像我这样的新手,我还是弄详细点)

(1)解压后保存到/usr底下。
shell> tar -zxvf apache*.gz(文件名)
shell> mv apache*(文件名) /usr/

(2)、使用jsvc以普通用户在80端口运行tomcat5
安装autoconf #安装jsvs时提示要装的,没有办法就装咯
apt-get install autoconf

(3).安装jsvc

#cd /usr/apache-tomcat-6.0.14/bin
#tar -xvfz jsvc.tar.gz
#cd jsvc-src
#sh support/buildconf.sh
#chmod 755 configure
#./configure --with-java=/usr/jdk1.6.0 (改成你的JDK的位置)
#make

2、添加脚本让tomcat自动启动 #这个是我之前发帖求助的,但是最终没有得到完美的答复,最后还是请教朋友的
#useradd tomcat 添加用户

#chown -R tomcat /usr/apache-tomcat-6.0.14
设置用户tomcat对tomcat的权限

#cp /usr/apache-tomcat-6.0.14/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
移动文件tomcat5.sh到/etc/init.d/里面并改名为tomcat

#chmod 755 /etc/init.d/tomcat
#vi /etc/init.d/tomcat

修改脚本为如下内容

#!/bin/sh
##############################################################################
#
# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#
# Adapt the following lines to your configuration
JAVA_HOME=/usr/jdk1.6.0
CATALINA_HOME=/usr/apache-tomcat-6.0.14
DAEMON_HOME=/usr/apache-tomcat-6.0.14/bin
TOMCAT_USER=tomcat

# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/usr/apache-tomcat-6.0.14

CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar

case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;

stop)
#
# Stop Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;

*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac





(3)、设置tomcat为自启动
Tomcat自启动
ln -s /etc/init.d/tomcat /etc/rc0.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc1.d/K20tomcat6
ln -s /etc/init.d/tomcat /etc/rc2.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc3.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc4.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc5.d/S20tomcat6
ln -s /etc/init.d/tomcat /etc/rc6.d/K20tomcat6


(4)、把默认的网站目录屏蔽了,配置apache-tomcat虚拟主机
shell> vim /usr/apache-tomcat-6.0.14/conf/server.xml

在</Host>下添加
</Host>

<Host name="amoyrico" appBase="/home/www/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"
workDir="/home/www/work">
<Context privileged="true" crossContext="true" docBase="htdocs" path="/" reloadable="true">
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/home/www/logs" prefix="access_log." suffix=".log" pattern="combined" resolveHosts="false"/>
</Host>



屏蔽默认的网站目录方法:
在 </Host>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
这两段前后添加屏蔽符号
<!--
-->


3、安装Apache

# tar xzvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure ——prefix=/usr/apache2 ——enable-so
# make
# make install

4、编译生成mod_jk。

# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure ——with-apxs=/usr/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/apache2/modules/

5、配置

在/usr/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

# vi mod_jk.conf

  添加以下内容:

# 指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
# Where to put jk logs
#JkLogFile /usr/local/apache2/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1


# vi workers.properties

添加以下内容:

# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

6、再配置httpd.conf,作以下修改:

  将Listen 80 修改为 Listen 127.0.0.1:80

  将ServerName 修改为 ServerName LocalHost:80

  在DirectoryIndex中添加 index.jsp

  我的网页放在/home/www/webapps/htdocs/下,所以要修改DocumentRoot

DocumentRoot "/home/www/webapps/htdocs/"
<Directory "/home/www/webapps/htdocs/">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
</Directory>
<Directory "/home/www/webapps/htdocs/">
Order deny,allow
Deny from all
</Directory>
  增加关于加载mod_jk的语句:

  LoadModule jk_module modules/mod_jk.so

  Include /usr/apache2/conf/mod_jk.conf

7、在/home/www/webapps/htdocs/下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,就可以看到正确的页面了。


最后在提醒一下新手,安装tomcat之前要先装好jdk,还是把方法也写下吧。
安装jdk-6-linux-i586.bin。 (一个bin文件,网上下载的,地址忘记了,搜索下很多。)
shell> chmod +x jdk-6-linux-i586.bin
shell> ./jdk-6-linux-i586.bin
把解压出来的文件复制到/usr底下。
环境变量配置有三种方法(分别是:修改/etc/profile文件,修改用户目录下的.bashrc文件,直接在shell下修改)
我是修改/etc/profile

vim /etc/profile

添加:
export JAVA_HOME=/usr/jdk1.6.0
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

退出重新登入!
查看环境变量
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
整合过程能不能写个完整步骤,也给我借鉴一下。还有我最早使用tomcat的时候用的是apt-get但是默认好像是没有自启动,你可能搞错了。
欢迎访问我的qzone
http://21351142.qzone.qq.com
欢迎访问我的blog
http://wuwd.blog.ubuntu.org.cn
toicine
帖子: 20
注册时间: 2007-10-31 18:42

#10

帖子 toicine » 2007-11-21 15:32

DocumentRoot "/home/www/webapps/htdocs/"
<Directory "/home/www/webapps/htdocs/">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
</Directory>
<Directory "/home/www/webapps/htdocs/">
Order deny,allow
Deny from all
</Directory>
关于上面这段有点问题 请楼主解答下 谢谢,就是按照上面一样输进httpd.conf的话会提示
Forbidden
You don't have permission to access / on this server

然后我改了下:
DocumentRoot "/home/www/webapps/htdocs/"
<Directory "/home/www/webapps/htdocs/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

XBitHack on
</Directory>
<Directory "/home/www/webapps/htdocs/">
Order allow,deny
Allow from all

</Directory>
就可以了。。为什么这样的??
还有关于这段的
<Host name="amoyrico" appBase="/home/www/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"
workDir="/home/www/work">
<Context privileged="true" crossContext="true" docBase="htdocs" path="/" reloadable="true">
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/home/www/logs" prefix="access_log." suffix=".log" pattern="combined" resolveHosts="false"/>
</Host>
上面的Host name 不是localhost 吗?怎么是amoyrico

呵呵 ,刚学ubuntu 很多东西不懂 请楼主解答下。谢谢。

还有改了上面的 东西后,打开apache和tomcat 服务,运行localhost 能打开html和解析JSP了 .算是成功了吗?
cmwfox
帖子: 40
注册时间: 2007-02-26 11:09

#11

帖子 cmwfox » 2007-12-11 17:50

root@ubuntu:~# /etc/init.d/tomcat start
/etc/init.d/tomcat: 44: /usr/jdk1.6.0/lib/tools.jar: : not found
/etc/init.d/tomcat: 45: /usr/apache-tomcat-6.0.14/bin/commons-daemon.jar: : not found
/etc/init.d/tomcat: 46: /usr/apache-tomcat-6.0.14/bin/bootstrap.jar: Permission denied
/etc/init.d/tomcat: 88: -user: not found
/etc/init.d/tomcat: 88: -home: not found
/etc/init.d/tomcat: 88: -Dcatalina.home=/usr/apache-tomcat-6.0.14: not found
/etc/init.d/tomcat: 88: -Dcatalina.base=/usr/apache-tomcat-6.0.14: not found
/etc/init.d/tomcat: 88: -Djava.io.tmpdir=/var/tmp: not found
/etc/init.d/tomcat: 88: -wait: not found
/etc/init.d/tomcat: 88: -pidfile: not found
/etc/init.d/tomcat: 88: -outfile: not found
/etc/init.d/tomcat: 88: -errfile: not found
/etc/init.d/tomcat: 88: : not found
/etc/init.d/tomcat: 88: -cp: not found
/etc/init.d/tomcat: 88: org.apache.catalina.startup.Bootstrap: not found
root@ubuntu:~# /etc/init.d/tomcat start


请问为什么报这个错?哪里不对吗?
mara
帖子: 24
注册时间: 2008-01-19 16:37

#12

帖子 mara » 2008-02-16 10:14

恩,写的不错啊,找了这么多这个算是好的了,我是新手,麻烦兄弟把那些配置文件谢谢就好了啊[quote][/quote]
mara
帖子: 24
注册时间: 2008-01-19 16:37

#13

帖子 mara » 2008-02-16 10:16

对了,如果提示没有设置变量,也就是变量没有生效,是不是用这个source /etc/profile?
kunga
帖子: 1
注册时间: 2009-05-30 15:47

Re: [原创]源码安装apache2和jk,并且成功整合了apache和tomcat

#14

帖子 kunga » 2009-05-30 15:49

很感谢搂主!我成功整合apache2和tomcat了,谢谢楼主!!!!!!!太可爱了你
回复