免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7338 | 回复: 15
打印 上一主题 下一主题

[FreeBSD] [测试通过]freebsd6.1 下整合安装apache22和resin3实现jsp功能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-08 10:58 |只看该作者 |倒序浏览
系统:
freebsd6.1-p3
apache22
pure-ftp
mysql
jdk15
resin3.0.19
防火墙ipfw
开了若干虚拟主机,也一并实现了 JSP 功能
步骤如下:
系统安装和apache22的安装和配置就不用说了,这里有很多也很简单,大家自己搜一下吧。我都是用PORTS安装的
(BSD我已经升级过源码,PORTS也已经升级过)
一、安装JDK
1、安装
cd /usr/ports/java/jdk15
make install clean
注:会提示你缺少以下几个文件,要自己下载并放到 /usr/ports/distfiles 下,下载地址也会有提示
(1)jdk-1_5_0-src-scsl.zip
(2)jdk-1_5_0-bin-scsl.zip
(3)j2sdk-1_4_2_12-linux-i586.bin  ---这个开始没有提示缺少,后面会有提示,最好一并下载并放到 /usr/ports/distfiles 目录下
2、安装中间可能还会提示一个错误,具体的提示我说不住了,但里面有一个 linux_base-8-8.0_14 的字样,还会告诉你一个 pkd_del 的命令,如果出现这个提示,你就输入下面这个命令:
pkd_delete -f linux_base-8-8.0_14
然后再接着输入:(当面一定要还在 /usr/ports/java/jdk15目录,输入 pwd 查看)
make deinstall
make reinstall clean
以后如果还有提示错误(我安装的时候再没有了),详细查看提示文字,解决之后输入:
make deinstall
make reinstall clean (还要保证在 /usr/ports/java/jdk15目录)
注:这个安装的过程比较漫长,尤其是在编译CPP文件的时候,大家一定要耐心等待,
3、安装成功后,输入以下命令验证:
java -version
如果出现:
java version "1.5.0-p3"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-p3-XXXX_07_aug_2006_12_59)
Java HotSpot(TM) Client VM (build 1.5.0-p3-XXXX_07_aug_2006_12_59, mixed mode)
说明安装成功
二、安装RESIN
1、安装
因为我安装的是apache22,所以在安装前要手动修改 resin3 的安装文件。如果你装的是apache13或apache20,可能不需要修改。
如果不修改可能会出现无法和apache整合的情况,原因就是安装完resin后没有自动修改httpd.conf文件和填加相应的so文件,有的安装完resin后无法和apache整合,可能就是这个原因。
cd /usr/ports/www/resin3
ee Makefile
(1)找到 WITH_APACHE2?= 这一行,将后面的 NO 修改为 YES
(2)找到 BUILD_DEPENDS+=         ${APXS}{PORTSDIR}/www/apache2 和 PLIST_SUB+=             MOD_DIR=libexec/apache2 这二行,改成:
BUILD_DEPENDS+=         ${APXS}{PORTSDIR}/www/apache22
PLIST_SUB+=             MOD_DIR=libexec/apache22
保存退出。
这样安装的时候,它才会正动修改你的 httpd.conf 文件增加 LoadModule caucho_module      libexec/apache22/mod_caucho.so
这一行;并在你的 /usr/local/libexec/apache22 中填加 mod_caucho.so 文件。
然后输入:
make install clean
可能会出现 resin-3.0.19.tar.gz 无法下载的情况,这时要手动下载此文件,并放到 /usr/ports/distfiles/ 下,然后重新输入:
make install clean
这个很快的,完成后如果出现:
--------------------------------------------------------------------------------
ADVANCED USAGE

If you need to pass special options to Java, please set the resin3_flags option
in /etc/rc.conf, see examples below:

  # Prevent Java from opening an X11 display

  resin3_flags="-Djava.awt.headless=true"

  # Increase memory limit of the Java virtual machine

  resin3_flags="-Xms32m -Xmx256m"

  # Run Java with remote debugging turned on on port 8000

  resin3_flags="-Xdebug -Xnoagent
  -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

The Resin Apache module mod_caucho has been activated in the Apache
configuration file, where you should also add a line to specify the location of
the Resin configuration server, for example:

<IfModule mod_caucho.c>
    ResinConfigServer localhost 6802
</IfModule>
********************************************************************************
说明你的resin已经安装成功了,e_e
这时按照提示修改 httpd.conf 文件,在最下面填加:
<IfModule mod_caucho.c>
    ResinConfigServer localhost 6802
</IfModule>
注:httpd.conf中还有一项需要修改,就是 Servername 这项,改成 Servername  localhost 即可
(2)修改resin3.sh文件:
cd /usr/local/etc/rc.d
ee resin3.sh
找到 resin3_enable=${resin3_enable:-"NO"} 这一行,改成 resin3_enable=${resin3_enable:-"YES"},保存退出
输入:
./resin3.sh start
(3)重启 apache
cd /usr/local/etc/rc.d/
./apache22.sh restart
(4)JSP网页测试
http://IP/index.jsphttp://IP:8080/index.jsp
如果想在输入网址的时候不用加 index.jsp 在 httpd.conf 中加入 index.jsp 的索引即可
三、如果自动启动 resin
安装完 resin 后,它会提示你在 rc.conf 中加入 resin3_enable="YES" ,可我试过,加入之后并不能自动随系统启动 resin,还需要手动启动才可,所以这个不用加入到 rc.conf 中去,并用如下方法解决:
cd /etc
ee rc.local (没有的话就自己建立这个文件)
输入:
/usr/local/etc/rc.d/resin3.sh start
然后重启
reboot
可以输入 top 查看,如果有 java ,说明已经启动成功!
四、防火墙IPFW的设置
如果装有IPFW防火墙,一定要在规则中填加 ipfw add 10006 allow tcp from any to me 8080 in 规则,否则无法实现 JSP 功能的调用。(在关掉了resin的8080端口的webserver功能后,就不用加了)
本例已经本人测试通过,当然朋友们在安装的时候可能还会遇到其它的问题,欢迎我们一起讨论,把所有的问题都解决掉。


补充:
以上的安装有一个问题,就是Resin完全接管了apache的功能,成了独立的webserver,如果想要apache和resin分管html、php和jsp的话,还要接着改一下:

1、可以关掉resin的8080端口,直接通过http://localhost/index.jsp的方式访问,这时apache只是起到了转发的功能,当然在访问静态页面或php页面的时候,还是通过apache来执行的
我用的是resin3.0.19版,低于此版的朋友可对照做相应修改
cd /usr/local/etc/resin3
ee resin.xml
找到:
<!-- The http port -->
    <http server-id="" host="*" port="8080"/>
将其改为:
<!-- The http port
    <http server-id="" host="*" port="8080"/>
     -->
也就是把这行给注释掉,这样就不启用resin的webserver功能了。

2、还是这个文件,接着找到下面这行:
<srun server-id="" host="127.0.0.1" port="6802"/>
将其改为:
<srun server-id="" host="localhost" port="6802"/>
这个是关键的,如果不改,则只能通过8080才能访问jsp页面(8080没有关掉的情况下),这个就是和你的httpd.conf中的 "ServerName   localhost" 和 “ResinConfigServer localhost 6802”相对应,原来我也是没改,一直搞不好,改了之后,重启resin和apache,OK了。

注:这个可以用多个端口来实现平衡负载功能
比如:
<srun server-id="" host="localhost" port="6801"/>
<srun server-id="" host="localhost" port="6802"/>
<srun server-id="" host="localhost" port="6803"/>
<srun server-id="" host="localhost" port="6804"/>
当然你也要在httpd.conf做对应的设置才行:
ResinConfigServer localhost 6801
ResinConfigServer localhost 6802
ResinConfigServer localhost 6803
ResinConfigServer localhost 6804

3、如果你用apache做了虚拟主机,还要改下面,使它和apache的保持一致:
cd /usr/local/etc/resin3
ee resin.xml
找到:
<!-- configures the default host, matching any host name -->
    <host id="" root-directory=".">            
      <!--                 
         - configures an explicit root web-app matching the
         - webapp's ROOT
        -->
      <web-app id="/" document-directory="webapps/ROOT"/>         
    </host>
改成和你主机中对应的,如果有多个,就填加多段就行了:
<!-- configures the default host, matching any host name -->
    <host id="XXX.XXX.XXX" root-directory=".">            
      <!--                 
         - configures an explicit root web-app matching the
         - webapp's ROOT
        -->
      <web-app id="/" document-directory="/usr/local/www"/>         
    </host>

注:重启的时候最好先kill掉java,kill -9 ID
然后再 ./resin2.sh start
./apache22.sh restart
再注:做了负载平衡后,输入 netstat -an 会发现有很多127.0.0.1的连接,我个人感觉这个应该是做了负载平衡之后的正常连接现象吧,也请CU里的朋友们提示一下,呵呵

[ 本帖最后由 yangf 于 2006-8-10 14:07 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-08 16:04 |只看该作者
好。顶~~~~~~~~

论坛徽章:
0
3 [报告]
发表于 2006-08-08 21:45 |只看该作者
顶,,,,,,

论坛徽章:
0
4 [报告]
发表于 2006-08-10 14:09 |只看该作者
贴子做了编辑和补充,自己顶一下,;p

论坛徽章:
0
5 [报告]
发表于 2006-08-16 16:50 |只看该作者
好文章,我正需要呢,收藏了先,有问题再来向你请教,谢谢楼主

论坛徽章:
0
6 [报告]
发表于 2006-08-16 17:10 |只看该作者
jdk-1.5.0p3_3 depends on file: /usr/local/linux-sun-jdk1.4.2/bin/javac - not found
===>    Verifying install for /usr/local/linux-sun-jdk1.4.2/bin/javac in /usr/ports/java/linux-sun-jdk14
===>  linux-sun-jdk-1.4.2.12 You must manually fetch the J2SE SDK self-extracting file for the Linux platform (j2sdk-1_4_2_12-linux-i586.bin) from http://javashoplm.sun.com/ECom/d ... TransactionId=noreg, place it in /usr/ports/distfiles and then run make again.
*** Error code 1

Stop in /usr/ports/java/linux-sun-jdk14.
*** Error code 1

Stop in /usr/ports/java/jdk15.

我出现了这个错误,但是我在sun网站找不到这个相关的具体下载,很多不知道选择哪个了

论坛徽章:
0
7 [报告]
发表于 2006-08-16 23:48 |只看该作者
呵呵,我正想整合JSP呢

多谢了

论坛徽章:
0
8 [报告]
发表于 2006-08-18 16:46 |只看该作者
我照这样安装了,怎么出问题了

Note: * uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
21 errors
12 warnings
gmake[3]: *** [.compile.classlist] Error 1
gmake[3]: Leaving directory `/usr/ports/java/jdk15/work/j2se/make/java/java'
gmake[2]: *** [all] Error 1
gmake[2]: Leaving directory `/usr/ports/java/jdk15/work/j2se/make/java'
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory `/usr/ports/java/jdk15/work/j2se/make'
gmake: *** [j2se-build] Error 2
*** Error code 2

Stop in /usr/ports/java/jdk15.
*** Error code 1

Stop in /usr/ports/java/jdk15.

论坛徽章:
0
9 [报告]
发表于 2006-08-19 08:13 |只看该作者
6楼的问题:

手动下载 linux-sun-jdk-1.4.2.12  文件,放到 /usr/ports/distfile 下,然后重新 make install

7楼的问题:

这个问题我也遇到过,不明原因,我第一次安装jdk1.5的时候没有问题,测试通过。过一段时间升级了ports之后,没法解析jsp,然后 make deinstall 掉 jdk1.5,再次安装就出现了和你一样的问题。没办法重新 make deinstall 掉 jdk1.5,安装 jdk1.4 ,测试通过。当然 jdk1.4 的安装步骤和 jdk1.5 的没什么区别,只是相应的手动下载文件变了,注意看提示手动下载并放到 /usr/ports/distfile 下就可以了

希望哪位朋友遇到和7楼一样的问题,帮助解决一下吧。

论坛徽章:
0
10 [报告]
发表于 2006-08-24 10:17 |只看该作者
我安装了diablo-jdk-freebsd6.i386.1.5.0.07.00.tbz
已经安装好了,感谢楼主的帖子
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP