科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Linux+Apache+PHP+JSP的Resin解决方案

Linux+Apache+PHP+JSP的Resin解决方案

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

JSP相对于PHP来说,可能运行得更快,消耗系统资源更少,功能更为强大——例如对分布式处理和组件支持等等。JSP技术在国外已经相当普及,而在国内,只不过还是刚热起来而已……虽然现在ASP+在性能上给JSP带来严峻的挑战,但它作为微软以外的一个选择,又支持多平台,所以还是很多网站所采用的首选。在这一部分里,我们将讲解三种不同的JSP集成方案,代表着三种典型的应用范围。

来源:论坛整理 2008年12月18日

关键字: Linux 系统安全 安全技术

  • 评论
  • 分享微博
  • 分享邮件

JSP相对于PHP来说,可能运行得更快,消耗系统资源更少,功能更为强大——例如对分布式处理和组件支持等等。JSP技术在国外已经相当普及,而在国内,只不过还是刚热起来而已……虽然现在ASP+在性能上给JSP带来严峻的挑战,但它作为微软以外的一个选择,又支持多平台,所以还是很多网站所采用的首选。在这一部分里,我们将讲解三种不同的JSP集成方案,代表着三种典型的应用范围。

  Linux+Apache+PHP+JSP的Resin解决方案

首先向大家推荐的是Resin。Resin是快速的、容易配置和实施的、使用简单的JSP/Servlet引擎和Web服务器。这一点完全是无庸置疑的,无论是在windows平台还是在UNIX/Linux平台。然而目前的Resin1.3还不是一个应用服务器。不过Resin2.0版有望取得很大的突破。因为它将包含一些最新的J2EE特性。Resin在JSPtags、XML解析等方面投入都比较早,现在也是处于比较领先的地位。而apache.org的tomcat更象是一个开发研究的产品。如果让我来做一个网站,RESIN肯定是我的首选——相信泛舟也是如此认为的。

我们将在Linux+Apache+PHP的WEB服务解决方案中加入JSP的支持,这也许是您升级网站的需要。就算你不需要PHP也没有关系,下面我也会讲解如何做到这一点。

1、软件包的获取

JDK是所有支持JSP环境所必须的,可以从http://java.sun.com获得它forlinux的最新版本,现在好象是JSDKv1.3。

Resin可以从它的老家http://www.caucho.com获得它的最新版本。在5月初的时候它的最新稳定版是1.2.5。

至于apache什么的,请参考上一节有关内容。

2、安装JDK

在安装Resin前,最好先安装好JDK,如果是下载的rpm包的话,可以使用

rpm-Uvhjava_version.rpm

如果是下载的GNU压缩包的话,直接解压就可以了。

别忘了确认java运行所需要的一些基本设置,可能包括PATH、JAVA_HOME、CLASSPATH,例如可以把这些行加入/etc/profile文件里:


PATH=/usr/local/bin:/usr/bin:/bin:/usr/java/binexportPATHJAVA_HOME=/usr/javaexportJAVA_HOMECLASSPATH=/usr/java/lib/tools.jarexportCLASSPATH


具体请参考java.sun.com对相应版本的安装说明。

3、Resin对apache的要求

Resin可以为apache提供一个快速的servlet运行环境,允许apache处理servlets和JSP文件。但是它需要Apache的版本为1.3.x和DSO(DynamicSharedObject,动态共享对象)的支持。所以在我们前一节中apache的编译选项中,需要添加一条--enable-module=so。如果我们并不需要PHP的支持的话,可以直接使用类似如下的方法编译apache:


linux>./configure--prefix=/usr/local/apache--enable-module=solinux>makelinux>makeinstall


4、编译mod_caucho.so

为了要编译mod_caucho.so,你需要先运行configure后才使用make。这一步将生成mod_caucho.so并把它放在Apache的module目录里。按照我们在第二节中的设置,mod_caucho.so将在/server/apache/libexec的目录下,否则一般都会被编译成/usr/local/apache/libexec/mod_caucho.so。

linux>./configure--with-apache=/server/apache
如果是按照前一步举例中的方法把apache的安装目录设置为了
/usr/local/apache,那么,请修改这里apache的目录。
linux>make
linux>makeinstall

这样你就已经可以了。但是假如你知道apxs的位置的话,你也可以使用如下方法来编译:

linux>./configure--with-apxs=/usr/local/apache/bin/apxs
linux>make

apxs是一个apache安装配置时生成的一个小小的perl脚本。它可以使象resin这种模块获得apache所有的配置路径。你应该可以用whereisapxs获得它的位置。

如果你对配置选项需要更全面细致的定制的话,你还可以使用./configure的如下参数,例如apache-include,apache-libexec和apache-conf,下面是对它们的说明:

--with-apache=dir//Apache的根路径,也就是prefix指定的安装目录
--with-apxs=apxs//指向Apache的扩展脚本
--with-apache-include=dir//Apache包含文件所在的目录
--with-apache-libexec=dir//Apache模块所在的目录
--with-apache-conf=httpd.conf//Apache的配置文件

5、设置环境变量

我们已经完成了JDK的安装与环境设置,但还需要对resin进行环境设置。下面是一个典型的配置,需要你手动加入~/.profile或者/etc/profile文件中。

#Resin的安装路径。通常情况下Resin都在这样的目录下:
RESIN_HOME=//resin1.2
exportRESIN_HOME
#假如你使用了扩展类库,你需要把它加入到classpath中,
#最典型的可能是JDBC的驱动程序了
CLASSPATH=$CLASSPATH:

6、配置resin.conf

缺省的,Resin将在resin1.2/doc目录下寻找JSP文件,在resin1.2/doc/WEB-INF/classes寻找servlets和beans。为了要让Resin使用Apache的发布文档目录(也就是我们发布WWW服务的根,在这里是/var/www/),我们需要配置app-dir。把app-dir从“doc”修改为/var/www或者你指定的WWW发布文档的根。下面是一个典型的resin.conf文件。


app-dir='/var/www/'>servlet-name='invoker'/>servlet-name='com.caucho.jsp.XtpServlet'/>servlet-name='com.caucho.jsp.JspServlet'/>


7、启动Servlet引擎

现在你需要启动servlet的引擎。和apache配合、resin单独运行,resin的启动方法都是一样的。当然,对resin1.2/bin/httpd.sh这个脚本文件来说,你一样可以使用start和stop参数。

linux>resin1.2/bin/httpd.shResin1.2.s010113--SatJan1311:17:18PST2001httplisteningto*:8080srunlisteningtolocalhost:6802


Resin将显示它监听的每一个端口。在上面这个例子中,Resin的http服务使用了8080,servlet支持协议使用了6802端口。也就是说mod_caucho只可以在本地的6802端口和Resin连接通信,但你可以通过8080端口在任何主机上浏览Resin服务器的内容。

下面这个片段显示了http和srun在上面这个例子中的配置。
...

呵呵,现在你可以使用一些简单的脚本来测试你的jsp环境了。

附注:wrapper.pl

Resin使用一个perl的脚本,resin1.2/bin/wrapper.pl,来控制Java进程。((bin/httpd.sh只是一个调用wrapper.pl的微型脚本而已)。你可以通过修改bin/httpd.sh或者bin/wrapper.pl来设定你的配置。

wrapper.pl在Resin结束的时候自动重起它。假如你需要使用kill命令停止Resin,你需要先用kill命令杀掉wrapper.pl进程("httpd.shstop"就是通过kill了wrapper.pl进程来实现的。
Linux+Apache+Tomcat(JSP)解决方案

Tomcat是apache上实现jsp+javabean环境的接口程序,集成了jsp1.1和servlet2.2。他提供一个单独的mod_jserv.so模块,利用apache的DSO动态载入,与早先的Jserver不同,Tomcat必须作为一个单独的程序运行,所有提交给apache的java请求将通过Tomcat自带的jserv模块提交给Tomcat进一步处理。就是说,必须先运行

Tomcat,再运行apache才能解释jsp/servlet程序。

很多Tomcat的安装指南都把Tomcat与Jserv一起安装,我觉得没有这个必要。Tomcat与Jserv有何区别?Tomcat是Jserv吗?大家对它们之间的关系不是很清楚明白。Jserv是ServletAPI2.0兼容并与Apache一起使用的容器。Tomcat是一个完全重写的并与ServletAPI2.2和JSP1.1兼容的容器。这通过前面的说明也可以看出来。Tomcat使用了一些为Jserv而写的代码,特别是Jserv的Apache接口,但这是唯一的相同之处.

和resin相比,Tomcat更象是一个正在研究的项目。resin早可以支持sun的j2ee,而在tomcatv3.x不能直接支持,而j2ee是基于java服务器端大系统的基础。当然,在它的4.x版本中已经有了改观。但tomcat结构非常合理,而且是apache组织和sun合作的产品,因此有着很好的远景。

注意本小节和前两小节没有任何继承关系,完成安装的唯一前提是使用系统自带的apache或者使用RPM包安装的apache,并且apache已经可以正常运行了。

1、软件包的下载

从http://jakarta.apache.org下载Tomcat3.1的二进制文件:jakarta

-tomcat.tar.gz.和mod_jserv.so文件。当然JDK也是必不可少的。

2、安装JDK和Tomcat

假设JDK和Tomcat软件包都在/usr/local目录下。

cd/usr/local
tarzxvfjdk1_3_0-linux-i386.tar.gz
ln-sjdk1.3.0jdk

cd/usr/local
tarzxvfjakarta-tomcat.tar.gz
ln-sjakarta-tomcattomcat

注意修改软件包的名称。

3、设置环境变量,在/etc/profile或者登陆用户目录~/.bash_profile中设置环境变量如下:

JAVA_HOME=/usr/local/jdk
TOMCAT_HOME=/usr/local/tomcat
CLASSPATH=$JAVA_HOME/lib/tools.jar
exportJAVA_HOMETOMCAT_HOMECLASSPATH

4、可以启动Tomcat自带的调试环境,端口8080

启动:/usr/local/tomcat/bin/tomcat.shstart(这是后台启动)

或者/usr/local/tomcat/bin/startup.sh

停止:/usr/local/tomcat/bin/tomcat.shstop(这是停止后台服务)

或者/usr/local/tomcat/bin/shutdown.sh

访问:http://localhost:8080/examples

5、建立Apache和Tomcat联系:

1)cpmod_jserv.so/usr/lib/apache

2)在/etc/httpd/conf/httpd.conf文件的最后加入

Include/usr/local/tomcat/conf/tomcat-apache.conf


3)更改/usr/local/tomcat/conf/tomcat-apache.conf第一行为:

LoadModulejserv_module/usr/lib/apache/mod_jserv.so

4)重新启动WWW服务:

/usr/local/tomcat/bin/tomcat.shstop
/usr/local/tomcat/bin/tomcat.shstart
/etc/rc.d/init.d/httpdrestart

5)现在可以通过lynxhttp://localhost/examples访问jsp/servlet

6、加入一个新的映射目录(如:通过http://localhost/new_app访问,/new_app映射到系统目录/home/httpd/new_app)

1)stopTomcat和Apache

2)vi/usr/local/tomcat/conf/server.xml,加入:


debug="0"reloadable="true">


3)/usr/local/tomcat/bin/tomcat.shstart

4)cp/usr/local/tomcat/conf/tomcat-apache.conf/usr/local/tomcat/tomcat-apache-cig.conf

5)修改/usr/local/tomcat/tomcat-apache-cig.conf,将new_app定义部分的目录映射改为/home/httpd/new_app

6)cp-R/usr/local/tomcat/webapps/examples/home/httpd/new_app/

7)重启Apache,即可通过http://localhost/new_app访问jsp/servetl。

附注:使用说明

1)Jsp程序放在/home/httpd/new_app下,可以通过http://localhost/new_app/test.jsp访问。

2)Servlet程序放在/home/httpd/new_app/WEB-INF/classes下,通过http://localhost/new_app/servlet/Test访问。

3)Javabean放在/home/httpd/new_app/WEB-INF/classes下。或者任意一个CLASSPATH定义的目录下。

4)为兼容原有系统,将servlet程序放在/usr/local/tomcat/webapps/ROOT/WEB-INF/classes下,即可用过http://localhost/servlet/com.Test形式访问。

Linux+IBMWebshpere解决方案(JSP)

也许您长期以来使用微软的产品,下意识的难以接受一切都免费的服务器系统,那么我们还有很多其它的选择,例如鼎鼎有名的蓝色巨人——也许它能够使你更觉放心^_^。IBMWebSphereApplicationServer是一种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,具有以下的特性:

1、基于Java和Servlets的Web应用程序运行环境,包含了为Web站点提供服务所需的一切,包括项目管理,连接数据库,JavaServlet代码生成器,beans和servlets开发工具,HTML编辑器,网站发布等,为开发Servlets和Javabeans提供了多种向导。WebSpherePerformancePack作为网络优化管理工具,可以减少网络服务器的拥挤现象,扩大容量,提高Web服务器性能。

2、运行时可以协同并扩展Apache、Netscape、IIS和IBM的HTTPWeb服务器,因此可以成为强大的Web应用服务器。

3、包含了eNetworkDispatcher、WebTrafficeExpress代理服务器和AFS分布式文件系统,可以提供可伸缩的Web服务器环境。

在本文的这一部分主要讲解IBMWebSphere应用服务器。我们主要简介两种安装,一个是从CD安装的标准版本,一个是你可以从网上的下载的60天体验版。

1、安装pdksh

你可以从安装光盘里找到适合您linux系统版本的pdksh(PublicDomainKornShell),或者从pdksh的Web站点:http://www.cs.mun.ca/~michael/pdksh/获得您需要的版本。

2、运行安装脚本

假如你想IBMWebSphere应用服务器和现有的Web服务器配合使用,请在安装前先停止该web服务器的运行。例如httpdstop或者apachectlstop。你还需要在X环境下安装。

安装的过程很简单:

a、mount上光驱,例如:mount/dev/cdrom/mnt/cdrom;

b、进入光驱所在路径,例如:cd/mnt/cdrom;

c、运行安装脚本:./install.sh。

整个安装过程帮助你做了如下的事:

·安装IBMDeveloperKit

·安装IBMHTTPServer作为Web服务器(可选择)

·安装WebSphereplug-infortheWebserver

·安装一个新的IBMUDBDB2拷贝作为WebSphere管理数据库(只有AdvancedEdition支持,标准版不支持)

·配置您所选择的支持的数据库,包括DB2的安装版本(只有AdvancedEdition支持,标准版不支持)

·安装IBMWebSphere应用服务器

·安装IBMDistributedDebugger和ObjectLevelTrace(OLT)

3、配置Web服务器

如果你使用的是IBMHTTPServer,基本不需要做什么改动。假如使用Apache服务器,你需要在运行前配置Web服务器:

a、打开apache服务器的配置文件httpd.conf;

b、添加如下几行


LoadModuleapp_server_module/opt/IBMWebAS/bin/mod_app_server.soAddModulemod_app_server.cAlias/

IBMWebAS//opt/IBMWebAS/webNcfAppServerConfigBootFile/opt/IBMWebAS/properties/bootstrap.properties


c、拷贝WebSphere的Samples目录到Web服务器的document_root,如下所示:

cp-r/opt/IBMWebAS/WSsamplesdocument_root
cp-r/opt/IBMWebAS/WSsamplesIDBdocument_root

注意:opt是指你的WebSphere服务器安装的目录,document_root是指你web服务器的文档发布目录。

4、启动Web服务器

无论你使用的是IBMHTTPServer还是Apache服务器,假如Web服务器正在运行,你需要停止它。使用restart命令重启这个服务。

启动IBMHTTPServer1.3.12,使用如下命令:

/opt/IBMHTTPServer/bin/apachectlrestart

5、测试安装的结果

a、用root身份在一个单独的虚拟终端启动WebSphereadministrativeserver,使用如下命令:


cd/opt/IBMWebAS/bin

./startupServer.sh

b、等待,一般需要5分钟,直到/opt/IBMWebAS/logs/tracefile文件中出现如下信息:“WebSphereAdministrationServerisopenfore-business”。

c、用root身份在一个单独的虚拟终端启动Javaadministrativeconsole,使用如下命令:


cd/opt/IBMWebAS/bin

./adminclient.sh

d、当终端屏幕下面出现了控制台已经准备就绪的提示后,你可以开始准备运行了。

安装下载的60天体验版

请查阅

http://www-4.ibm.com/software/webservers/appserv/download_linux.html

以了解这个体验版的有关信息。

缺省的,这个体验版的安装是一个快速安装(QuickInstall)的过程,意味着自动安装IBMDeveloperKit,IBMHTTPServer,和一个InstantDBdatabase产品。在http://www.ibm.com/linux可以下载到这个体验版本。

1、解开下载回来的压缩包:

tar-xvfedn_trial_was3_5.tar


在edn的位置如果是“adv”表明是AdvancedEdition如果是“std”表明是标准版。

2、运行快速安装脚本,改变当前路径:

cdedntrial

然后运行安装脚本:

./quickinstall.sh

3、你会看见JDK、IBMHTTPServer和WebSphere应用服务器的RPM包显示一串数字信息提示安装的完成度。

完成安装以后,重新启动Webserver,然后启动WebSphere应用服务器。这部分可以参考前面CD安装的有关内容。

有关WebSphere的安装更详细的内容请查看下面这个web页面

http://www-4.ibm.com/software/webservers/appserv/doc/v35/ae/infocenter/was/inst_wasv35_linux.html

在这个部分,我们提供了三个WWW服务器的解决方案,而且都支持JSP,各有不同之处。第一个速度快、性能高、配置要求低;第二个是apache和sun合作的项目,有着可以看好的前景;第三个是IBM步入linux世界的成熟产品,功能全面,配置要求高。各有所长,可以按照你的需要来自己选择。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章