QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5587|回复: 14

Apache + Tomcat mod_jk RH8集成指南

[复制链接]
发表于 2002-12-31 16:10:48 | 显示全部楼层 |阅读模式
Timeout Tutorial


花了一个下午的时间终于可以让我RH8.0的Apache能支持JSP/Servlet了,现在写下来与大家共享!

1. 下载所需包   
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/archives/v4.1.18/bin/jakarta-tomcat-4.1.18.tar.gz
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/archives/v4.1.18/src/jakarta-tomcat-connectors-4.1.18-src.tar.gz
http://www.apache.org/dist/httpd/old/httpd-2.0.40.tar.gz

2. 解压下载的包
    cd /tmp
    tar xvzf  jakarta-tomcat-4.1.18.tar.gz
    tar xvzf  jakarta-tomcat-connectors-4.1.18-src.tar.gz
    tar xvzf  httpd-2.0.40.tar.gz
    mv jakarta-tomcat-4.1.18 /usr/local/tomcat

3. 编译安装http-2.0.40
      cd /tmp/httpd-2.0.40
     ./configure --prefix=/usr/local/apache2 --enable-module=so
     ./make
     ./make install

4. 编译mod_jk.so模块
    cd /tmp/jakarta-tomcat-connectors-4.1.18-src/jk/native
    ./buildconf.sh
    ./configure --with-apxs=/usr/local/apache2/bin/apxs
    ./make
    完成好会在当前目录的apache-2.0下生成mod_jk.so,把它拷贝到/usr/lib/httpd/modules下
    cp apache-2.0/mod_jk.so /usr/lib/httpd/modules/

5. 修改/usr/local/tomcat/conf/server.xml文件
     (1)在<Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true">后面加入下面内容:
            <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig"
modJk="/usr/lib/httpd/modules/mod_jk.so" />
同时把上面localhost该成你自己的域名比如 name = "www.linuxfans.org"

       (2)在<Server port="8005" shutdown="SHUTDOWN" debug="0">后面加入下面内容:
   <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true"
forwardAll="false" modJk="/usr/lib/httpd/modules/mod_jk.so"
workersConfig="/usr/local/tomcat/conf/jk/workers.properties" />

6. 在/usr/tomcat/conf/下面创建一个名叫一个目录却jk,并在这个目录下创建一个叫workers.properties的文件,其内容如下
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

7. 修改/etc/httpd/conf/httpd.conf
在Include conf.d/*.conf后加入下面这行:
Include /usr/local/tomcat/conf/auto/mod_jk.conf

8. 修改/usr/java/tomcat/conf/tomcat-usrs.xml,该完后如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user uname="tomcat" password="tomcat" roles="tomcat"/>
  <user uname="role1" password="tomcat" roles="role1"/>
  <user uname="both" password="tomcat" roles="tomcat,role1"/>
  <user uname="manager" password="manager" roles="manager"/>
  <user uname="admin" password="admin" roles="admin"/>
</tomcat-users>

9.测试一下
  启动Tomcat: /usr/local/tomcat/bin/startup.sh
  重新启动httpd服务: /etc/init.d/httpd restart
  因为tomcat启动比较慢,你可能要等一会儿!
  在浏览器测试http://www.linuxfans.org:8080/examples和http://www.linuxfans.org/examples
  如果没问题,那就搞定了!
  同时你也可以用http://www.linuxfans.org/admin管理你的tomcat(用户名和口令有: admin/admin, 你可以通过修改tomcat-usrs.xml来设定自己的管理员用户和口令)
同上http://www.linuxfans.org/manager管理你的项目
(用户名和口令有: manager/manager, 你可以通过修改tomcat-usrs.xml来设定自己的管理员用户和口令)

参考文献
http://www.johnturner.com/howto/apache-tomcat-howto.html
有问题请恢复!
发表于 2002-12-31 16:13:03 | 显示全部楼层

Re: Apache2.0.40 JSP RH8.0配置指南

[quote:d385f0ade6="jackey"]Timeout Tutorial

花了一个下午的时间终于可以让我RH8.0的Apache能支持JSP/Servlet了,现在写下来与大家共享!

1. 下载所需包    http://jakarta.apache.org/builds ... omcat-4.1.18.tar.gz
http://jakarta.apache.org/builds ... s-4.1.18-src.tar.gz
http://www.apache.org/dist/httpd/old/httpd-2.0.40.tar.gz

2. 解压下载的包
    cd /tmp
    tar xvzf  jakarta-tomcat-4.1.18.tar.gz
    tar xvzf  jakarta-tomcat-connectors-4.1.18-src.tar.gz
    tar xvzf  httpd-2.0.40.tar.gz
    mv jakarta-tomcat-4.1.18 /usr/local/tomcat

3. 编译安装http-2.0.40
      cd /tmp/httpd-2.0.40
     ./configure --prefix=/usr/local/apache2 --enable-module=so
     ./make
     ./make install

4. 编译mod_jk.so模块
    cd /tmp/jakarta-tomcat-connectors-4.1.18-src/jk/native
    ./buildconf.sh
    ./configure --with-apxs=/usr/local/apache2/bin/apxs
    ./make
    完成好会在当前目录的apache-2.0下生成mod_jk.so,把它拷贝到/usr/lib/httpd/modules下
    cp apache-2.0/mod_jk.so /usr/lib/httpd/modules/

5. 修改/usr/local/tomcat/conf/server.xml文件
     (1)把下面的内容注释掉(comment)
              <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8009" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="0"
               useURIValidationHack="false"                   protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

      (2)把下面的内容的注释去掉(uncomment)
                <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
               port="8009" minProcessors="5" maxProcessors="75"
               acceptCount="10" debug="0"/>

      (3)在<Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true">后面加入下面内容:
            <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig"
modJk="/usr/lib/httpd/modules/mod_jk.so" />

       (4)在<Server port="8005" shutdown="SHUTDOWN" debug="0">后面加入下面内容:
   <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true"
forwardAll="false" modJk="/usr/local/apache2/modules/mod_jk.so"
workersConfig="/usr/local/tomcat/conf/jk/workers.properties" />

6. 把下面的文件拷贝到/etc/httpd/conf.d/下面
   http://www.linuxfans.org/nuke/modules/Forums/files/mod_jk.conf

7. 在/usr/tomcat/conf/下面创建一个名叫workers.properties的文件,内容如下
    # BEGIN workers.properties
    #
    # Setup for apache system
    #
    # (optional) make this equal to CATALINA_HOME
    workers.tomcat_home=/usr/local/jakarta-tomcat-4.1.10
    #
    # (optional) make this equal to JAVA_HOME
    workers.java_home=/usr/java/j2sdk1.4.0_01
    #
    ps=/
    worker.list=ajp13

    # Definition for Ajp13 worker
    #
    worker.ajp13.port=8009

    # change this line to match apache ServerName and Host name in server.xml
    worker.ajp13.host=localhost

    worker.ajp13.type=ajp13
    #
    # END workers.properties

8.测试一下
  启动Tomcat: /usr/local/tomcat/bin/startup.sh
  重新启动httpd服务: /etc/init.d/httpd restart
  因为tomcat启动比较慢,你可能要等一会儿!
  在浏览器测试http://localhost:8080/examples和http://localhost/examples
  如果没问题,那就搞定了!


参考文献
http://www.johnturner.com/howto/apache-tomcat-howto.html
有问题请恢复![/quote]
webapp的模块为什么不用?
从哪里看到的用jk?这个模块太老了。不方便。
回复

使用道具 举报

发表于 2002-12-31 16:47:20 | 显示全部楼层
是的。mod_jk 的模块已经停止开发了,变成了 mod_webapp 了。
回复

使用道具 举报

 楼主| 发表于 2002-12-31 17:32:57 | 显示全部楼层
不大明白,但是我看的文章还提到了mod_jk2,不应该停止开发了吧?
webapp,我刚才在google上找了找没什么资料!
其事我只是想让我的RH 8.0 apache2支持jsp和servlet而已,不想用8080这个端口!你们有好的方法吗?还有个问题就是怎么呢让所有目录都支持jsp和servlet呢?我的意识是能让我的http://localhost/date.jsp和http://localhost/helloword都能运行!
回复

使用道具 举报

发表于 2002-12-31 17:37:16 | 显示全部楼层
Apache与Tomcat4的整合
1、首先安装Apache,请注意Apache必须安装DSO模式,即在执行./configure时须加上 --enable-module=so
默认安装到/usr/local/apache目录下。本例安装的apache的版本是1.3系列的。

2、制作mod_webapp.so
需要以下软件包:
jakarta-tomcat-connectors-4.x.xx-src.tar.gz
下载地址在tomcat对应版本的src目录下。例如,我安装的tomcat版本是4.1.17,则现在所需要的软件包的位置是:
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.17/src/jakarta-tomcat-connectors-4.1.17-src.tar.gz

apr-0.9.1.tar.gz
下载地址:http://www.apache.org/dist/apr/apr-0.9.1.tar.gz

然后解开jakarta-tomcat-connectors-4.1.17-src.tar.gz,生成jakarta-tomcat-connectors-4.1.17-src目录,
进入jakarta-tomcat-connectors-4.1.17-src/webapp的目录里,再把apr-0.9.1.tar.gz解到这个目录下,
并把刚生成的目录apr-0.9.1的目录名改成apr。

还是在webapp目录,运行以下命令:
# support/buildconf.sh
此时如果autoconf的版本低于2.52的话会报错退出,所以必须先安装autoconf-2.52 以上版本。(RH 8.0 、MD 9.0 带的 autoconf 版本都比较高,是 noarch 版本,可以随便升级安装的
当命令成功结束后会在当前目录下生成configure文件。


依次运行以下命令:
# ./configure --with-apxs=/usr/local/apache/bin/apxs[/usr/sbin/apxs]
# make
# cp apache-1.3/mod_webapp.so /usr/local/apache/libexec[/etc/httpd/modules]

现在mod_webapp.so已经制作好了,并已经拷贝到apache的modules目录下。
回复

使用道具 举报

 楼主| 发表于 2003-1-1 07:40:49 | 显示全部楼层
然后呢?这些都比较好搞定,谢谢先!
但是编译出webapp模块后怎么作才能做到如下功能
jsp能被自动识别和运行
放在http://localhost/servlet/的servlet能自动识别和运行!
回复

使用道具 举报

 楼主| 发表于 2003-1-1 10:18:04 | 显示全部楼层
我按照你的方法编译webapp,可是好像编译不过去!
编译了一半就不动了,不知道什么原因!
回复

使用道具 举报

 楼主| 发表于 2003-2-24 11:46:17 | 显示全部楼层
不求有功,但求无过!
我又重新修改这篇文章,更正了一些错误,并简化了这个过程!
回复

使用道具 举报

发表于 2003-3-23 10:55:05 | 显示全部楼层
依次运行以下命令:
# ./configure --with-apxs=/usr/local/apache/bin/apxs[/usr/sbin/apxs]

请问当我运行这个命令行时,错误报告:./configure: no match,请问这是怎么一回事?
而我用# ./configure --with-apxs=/usr/local/apache/bin/apxs时,可以编译。[/usr/sbin/apxs] 这是什么意思?
回复

使用道具 举报

发表于 2004-8-17 16:28:04 | 显示全部楼层
差一个插件~
回复

使用道具 举报

发表于 2004-8-19 13:20:34 | 显示全部楼层
呵呵,是个有年头的老贴了,现在关于apache和tomcat的整合在mod_jk2.so出来后已经变得异常简单了,linux和M$Windows下方法基本一样,在apache/conf中添加一个workers2.properties(解压后的tomcat_connector中就有——这个apache插件可以到www.apache.org上获得),将mod_jk2.so复制到apache/modules中,最后修改httpd.conf,至于tomcat可以基本不做改动。
回复

使用道具 举报

发表于 2005-9-13 16:28:22 | 显示全部楼层
yophoo或者版主能否把jsp的调试过程,详细说一些
前面那位兄弟已经说了一遍,但经版主的改进有些地方不是很清楚,比如说tomcat的安装方法,
所以还麻烦二位或者某一位调试过的兄弟,能否完整的写一遍,麻烦了。
回复

使用道具 举报

发表于 2005-12-1 11:43:48 | 显示全部楼层
(2)Tomcat安装

[root@linux root]# cd /usr/local/src/ ← /usr/local/src
[root@linux src]# tar zxvf /usr/local/src/jakarta-tomcat-4.1.29.tar.gz 
[root@linux src]# mv /usr/local/src/jakarta-tomcat-4.1.29/ /usr/local/src/tomcat/ 
[root@linux src]# mv /usr/local/src/tomcat/ /usr/local/ 
[root@linux src]# rm -f /usr/local/src/jakarta-tomcat-4.1.29.tar.gz 


■Tomcat设定
(1)环境变量Tomcat追加

[root@linux root]# vi /etc/profile ← 编辑环境变量
export TOMCAT_HOME=/usr/local/tomcat ← CLASSPATH
export CATALINA_HOME=/usr/local/tomcat ← CLASSPATH
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib 
[root@linux root]# source /etc/profile 


(2)不表示目录

[root@linux root]# vi /usr/local/tomcat/conf/web.xml
<param-name>listings</param-name>
<param-value>true</param-value>

<param-value>false</param-value> 


(3)サーブレットクラスをJRE(Java実行環境)のクラスライブラリへコピー

[root@linux root]# cp $CATALINA_HOME/common/lib/servlet.jar $JAVA_HOME/jre/lib/ext/ ← 复制


■Tomcat起动

[root@linux root]# /usr/local/tomcat/bin/startup.sh


■Tomcat確認
http://IP:8080/examples/servlets/访问Servlet Examples能够表示确认
http://IP:8080/examples/jsp/访问JSP Examples能够表示确认


■Tomcat自动起动设定
(1)Tomcat起動文件做成

[root@linux root]# vi /etc/rc.d/init.d/tomcat
#!/bin/sh
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.

# Source function library.
. /etc/rc.d/init.d/functions

export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin

case "$1" in
'start')
        if [ -f /usr/local/tomcat/bin/startup.sh ]; then
            echo "Starting the tomcat service "
            "/usr/local/tomcat/bin/startup.sh"
        fi
        ;;
'stop')
        echo "Stopping the tomcat service."
        "/usr/local/tomcat/bin/shutdown.sh"
        ;;
'restart')
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        ;;
esac
exit 0


(2)Tomcat起动文件权限追加

[root@linux root]# chmod +x /etc/rc.d/init.d/tomcat


(3)chkconfigへTomcat起動文件追加

[root@linux root]# chkconfig --add tomcat


(4)Tomcat自动起动设定

[root@linux root]# chkconfig tomcat on
[root@linux root]# chkconfig --list tomcat
tomcat          0ff  1ff  2n  3n  4n  5n  6ff


■Apache整和

(1)Apache/Tomcat的插件下载
  Apache Jakarta Project,Apache和Tomcat整和用的(mod_jk2-2.0.43.so)下载到/etc/httpd/modules/

(2)Apache/Tomcat整和

[root@linux root]# vi /etc/httpd/conf/httpd.conf
LoadModule jk2_module modules/mod_jk2-2.0.43.so ← 追加


(3)workers2.properties文件做成

[root@linux root]# vi /etc/httpd/conf/workers2.properties
[status:]
[uri:/jkstatus/*]
group=status:
[shm:]
disabled=1
[channel.socket:]
[ajp13:]
[uri:/examples/*]) 


(4)无效8080的服务

[root@linux root]# vi /usr/local/tomcat/conf/server.xml
<!-- ← 追加
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
           port="8080" minProcessors="5" maxProcessors="75"
           enableLookups="true" redirectPort="8443"
           acceptCount="100" debug="0" connectionTimeout="20000"
           useURIValidationHack="false" disableUploadTimeout="true" />
--> ← 追加


(5)Tomcat,Apache再起动(顺序严守)

[root@linux root]# /etc/rc.d/init.d/tomcat restart ← Tomcat再起动
[root@linux root]# /etc/rc.d/init.d/httpd restart ← Apache在起动


(6)Apache/Tomcat整和确认
http://IP/examples/servlets/访问Servlet Examples网页正常表示确认
http://IP/examples/jsp/访问JSP Examples网页正常表示确认
■一般拥护Servlet/JSP保存位置确认
http://IP/用户名/servlet/Servlet名/Servlet、

 ※ここでは例として一般ユーザ名をfedoraとする

(1)一般ユーザ用サーブレット/JSP格納ディレクトリを作成

[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/WEB-INF/
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/WEB-INF/classes/ ← サーブレット格納場所
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/jsp/ ← JSP格納場所
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/ ← 所有者をfedoraに変更
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/WEB-INF/ ← 〃
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/WEB-INF/classes/ ← 〃
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/jsp/ ← 〃


(2)一般ユーザ用サーブレット/JSP格納ディレクトリをTomcat設定ファイルへ追加

[root@linux root]# vi /usr/local/tomcat/conf/server.xml

        <Context path="/fedora" ← 追加
                 docBase="fedora" ← 追加
                 reloadable="true" ← 追加
                 crossContext="true"> ← 追加
        </Context> ← 追加
</host>


(3)一般ユーザ用サーブレット/JSP格納ディレクトリをworkers2.propertiesへ追加

[root@linux root]# vi /etc/httpd/conf/workers2.properties
[uri:/fedora/*] ← /fedora/へのアクセスはtomcatへ流す


(4)/fedora/servlet/以降へのアクセスはサーブレットとする設定

[root@linux root]# vi /usr/local/tomcat/conf/web.xml
<!-- The mapping for the invoker servlet -->
<!-- ← この行を削除
<servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
--> ← この行を削除


(5)Tomcat,Apache再起動(順番厳守!!)

[root@linux root]# /etc/rc.d/init.d/tomcat restart ← Tomcat再起動
[root@linux root]# /etc/rc.d/init.d/httpd restart ← Apache再起動


■一般ユーザ用サーブレット/JSP格納場所での動作確認
以降の作業は一般ユーザで行う

(1)サーブレットサンプルプログラムを作成する
サーブレットサンプルプログラムソース(ファイル名:HelloWorldServlet.java)

[fedora@linux fedora]$ vi HelloWorldServlet.java
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
    HttpServletResponse response)
      throws IOException, ServletException {
        response.setContentType("text/html; charset=SHIFT_JIS");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<H1>Hello World</H1>");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}

Hello Worldと表示するHTMLを生成してブラウザに返すサンプル

(2)サーブレットサンプルプログラムをコンパイルする

[fedora@linux fedora]$ javac HelloWorldServlet.java
[fedora@linux fedora]$ ls -al
合計 16
-rw-rw-r--    1 fedora fedora      425  3月 11 22:22 HelloWorldServlet.class ← classファイルが作成されていることを確認
-rw-rw-r--    1 fedora fedora      115  3月 11 22:22 HelloWorldServlet.java


(3)サーブレットのclassファイルをサーブレットクラスファイル格納ディレクトリへコピーする

[fedora@linux fedora]$ cp HelloWorldServlet.class /usr/local/tomcat/webapps/fedora/WEB-INF/classes/


(4)サーブレットサンプルプログラムを実行する
http://サーバーのIPアドレス/fedora/servlet/HelloWorldServletにアクセスしてサーブレットが動作することを確認

(5)JSPサンプルプログラムを作成する
JSPサンプルプログラムソース(ファイル名:HelloWorld.jsp)

[fedora@linux fedora]$ vi HelloWorld.jsp
<html>
<head><title>Hello World!</title></head>
<body>
<h1>Hello World!</h1>
<p>
<%
   String hello = "Hello World!";
   out.println(hello);
%>
</p>
</body>
</html>

Hello Worldと表示するHTMLを生成してブラウザに返すサンプル

(6)JSPサンプルプログラムをJSPファイル格納ディレクトリへコピー

[fedora@linux fedora]$ cp HelloWorld.jsp /usr/local/tomcat/webapps/fedora/jsp/


(7)JSPサンプルプログラム実行
http://サーバーのIPアドレス/fedora/jsp/HelloWorld.jspにアクセスしてJSPが動作することを確認
回复

使用道具 举报

发表于 2005-12-1 11:57:22 | 显示全部楼层
怎么出现那么多日文呀?
回复

使用道具 举报

发表于 2005-12-1 12:22:47 | 显示全部楼层
这是翻译过来的,一部分没翻译,中文网上就没找到真么详悉的教程.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 00:37 , Processed in 0.105761 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表