freebsd6.1 下整合安装apache22和resin3实现
系统:
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.jsp 或 http://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的连接,我个人感觉这个应该是做了负载平衡之后的正常连接现象吧
系统:
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.jsp 或 http://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的连接,我个人感觉这个应该是做了负载平衡之后的正常连接现象吧