[email protected] 2001.4.10 ====================================================== 环境概述: JDK1.2.2+Apache1.3.9+tomcat3.2.1+mod_jk.so 使用的软件包如下: JDK1.2.2-FreeBSD-Alpha.tar.gz apache_1.3.9.tar.gz jakarta-tomcat-3.2.1-src.tar.gz jakarta-tomcat-3.2.1.tar.gz 注释:之所以使用tomcat的src和bin两种,因为前者在FreeBSD下build的时候 出现很多错误,我改了一点,没成功,也懒得改了。 1.安装Apache: #tar zxvf apache_1.3.9.tar.gz #cd apache_1.3.9 #./configure --prefix=/usr/local/apache --enable-module=so 这里,需要enable-module,以便使Apache配置文件中的LoadModule命令 生效。 #make #make install 到此apache安装完毕 2.安装JDK: #mv JDK1.2.2-FreeBSD-Alpha.tar.gz /usr/local #tar zxvf JDK1.2.2-FreeBSD-Alpha.tar.gz #mv jdk-image-i386/ jdk #ln -s jdk/jre jre 下面设置环境变量: #vi /etc/profile 在PATH后面添加/usr/local/jdk/bin:/usr/local/jre/bin Java_HOME=/usr/local/jdk CLASSPATH=/usr/local/jdk/lib 如果root用的是csh,则需要作其他的改动,比如编辑/root/.cshrc或者修改 root的shell以便登陆时加载这些环境变量。 3.安装tomcat: #mv jakarta-tomcat-3.2.1.tar.gz /usr/local #tar zxvf jakarta-tomcat-3.2.1.tar.gz #mv jakarta-tomcat-3.2.1 tomcat 只要你正确设置了JAVA_HOME,CLASSPATH和PATH,现在应该可以启动tomcat了。 #/usr/local/tomcat/bin/tomcat.sh start 在Netscape浏览器里输入http://localhost:8080/来检查能否正确运行jsp。 4.使用tomcat source生成mod_jk.so #tar zxvf jakarta-tomcat-3.2.1-src.tar.gz #cd jakarta-tomcat-3.2.1-src/src/native/apache1.3 Makefile.freebsd的内容: ########################################################################## # The Following is the Makefile.freebsd 's content APACHE_HOME=/usr/local/apache OS=freebsd APXS=${APACHE_HOME}/bin/apxs A13_FLAGS=-I${APACHE_HOME}/include # I assume this one is set up already JAVA_HOME=/usr/local/jdk JAVA_INCL=-I${JAVA_HOME}/include -I${JAVA_HOME}/include/${OS} JAVA_LIB=-L${JAVA_HOME}/jre/lib/${ARCH} -L${JAVA_HOME}/lib/${ARCH}/native_th reads CFLAGS=-DHAVE_CONFIG_H -g -fpic -DSHARED_MODULE -O2 -D_REENTRANT -pthread - DLinux -Wall JK=../jk/ SRCS=jk_ajp12_worker.c jk_connect.c jk_msg_buff.c jk_util.c jk_ajp13.c jk_jni_worker.c jk_pool.c jk_worker.c jk_ajp13_worker.c jk_lb_worker.c jk_sockbuf.c jk_map.c jk_uri_worker_map.c OBJS=${patsubst %.c,%.o,${SRCS}} %.o: ../jk/%.c ${CC} -c ${CFLAGS} ${JAVA_INCL} ${A13_FLAGS} $< -o $@ .c.o: ${APXS} -c ${JAVA_INCL} -DFREEBSD ${A13_FLAGS} -I../jk $< all: mod_jk.so mod_jk.so: ${OBJS} mod_jk.o $(APXS) -c -o mod_jk.so ${OBJS} mod_jk.o # $(CC) -shared -o mod_jk.so ${OBJS} mod_jk.o clean: rm *.o *.so ########################################################################## 在编译生成mod_jk.so时,遇到了很多问题,首先是关于Makefile文件的修改, 然后apxs老是提示错误,如果是这样的话,可以直接使用gcc命令行编译: #gcc -fpic -c *.c jk/*.c -I../jk #gcc --shared -o mod_jk.so *.o 也可以达到目的 注意:要加入-I选项,将apache,jdk和../jk的include文件包含,具体参照 前面的Makefile.freebsd 生成mod_jk.so之后,将它拷贝到/usr/local/apache/libexec/下 5.配置apache和tomcat使apache遇到jsp文件时调用tomcat的jsp引擎: 多数情况下,tomcat会产生Apache需要的配置文件,当tomcat启动的时候, 它在/usr/local/tomcat/conf/下自动产生一个与Apache相适应的名为 mod_jk.conf-auto的文件,这个文件需要被httpd.conf包含。 #cd /usr/local/apache/conf #vi httpd.conf 加入如下行: Include /usr/local/tomcat/conf/mod_jk.conf-auto 同时,还需要Load Module,在httpd.conf中添加如下行: LoadModule jk_module libexec/mod_jk.so AddModule mod_jk.c JkWorkersFile /usr/local/jakarta-tomcat/conf/workers.properties JkLogFile /usr/local/apache/logs/mod_jk.log JkLogLevel warn 注意:要配置workers.properties和mod_jk.conf,使其与当前的环境相适应。 6.运行: 到现在为止,如果没有问题的话,就可以运行了, #/usr/local/apache/bin/apachectl start 如果出现类似如下错误: loading mod_jk.so, undefined symbol; map_name_at 说明mod_jk.so并没有编译完全,没有将所以的.o文件或者.c文件编译进去, 需要重新编译。 #/usr/local/tomcat/bin/tomcat.sh start 可以修改tomcat的配置文件,停止它的8080端口的httpd服务,使系统 最终只有一个httpd服务在运行。
[1] [2] 下一页
(出处:http://www.sheup.com)