Linux+Apache+PHP+JSP

来源:百度文库 编辑:神马文学网 时间:2024/04/29 09:04:06
JSP相对于PHP来说,可能运行得更快,消耗系统资源更少,功能更为强大??例如对分布式处理和组件支持等等。JSP技术在国外已相当普及,而在国内,只不过还是刚热起来而已……虽然目前ASP+在性能上给JSP带来严峻的挑战,但他作为微软以外的一个选择,又支持多平台,所以还是非常多网站所采用的最佳选择。在这一部分里,我们将讲解三种不同的JSP集成方案,代表着三种典型的应用范围。
Linux+Apache+PHP+JSP的Resin解决方案
  首先向大家推荐的是Resin。Resin是快速的、容易设置和实施的、使用简单的JSP/Servlet引擎和Web服务器。这一点完全是无庸置疑的,无论是在windows平台还是在UNIX/Linux平台。然而目前的Resin 1.3 还不是个应用服务器。不过Resin 2.0版有望取得非常大的突破。因为他将包含一些最新的J2EE特性。Resin在JSP tags、XML解析等方面投入都比较早,目前也是处于比较领先的地位。而apache.org的tomcat更象是个研发研究的产品。如果让我来做一个网站,RESIN肯定是我的最佳选择??相信泛舟也是如此认为的。
  我们将在Linux+Apache+PHP的WEB服务解决方案中加入JSP的支持,这也许是你升级网站的需要。就算你不必PHP也没有关系,下面我也会讲解怎么做到这一点。
1、软件包的获取
  JDK是所有支持JSP环境所必须的,能从
http://java.sun.com
获得他for linux的最新版本,目前好象是JSDK v1.3。
  Resin能从他的老家
http://www.caucho.com
获得他的最新版本。在5月初的时候他的最新稳定版是1.2.5。
  至于apache什么的,请参考上一节有关内容。
2、安装JDK
  在安装Resin前,最佳先安装好JDK,如果是下载的rpm包的话,能使用
rpm -Uvh java_version.rpm

  如果是下载的GNU压缩包的话,直接解压就能了。
  别忘了确认java运行所需要的一些基本设置,可能包括PATH、JAVA_HOME、CLASSPATH,例如能把这些行加入/etc/profile文件里:
PATH=/usr/local/bin:/usr/bin:/bin:/usr/java/bin
export PATH
JAVA_HOME=/usr/java
export JAVA_HOME
CLASSPATH=/usr/java/lib/tools.jar
export CLASSPATH
  具体请参考java.sun.com对相应版本的安装说明。
3、Resin对apache的需求
  Resin能为apache提供一个快速的servlet运行环境,允许apache处理servlets和JSP文件。不过他需要Apache的版本为1.3.x和DSO(Dynamic Shared Object,动态共享对象)的支持。所以在我们前一节中apache的编译选项中,需要添加一条--enable-module=so。如果我们并不必PHP的支持的话,能直接使用类似如下的方法编译apache:
linux> ./configure --prefix=/usr/local/apache
--enable-module=so
linux> make
linux> make install
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> make install
  这样你就已能了。不过如果你知道apxs的位置的话,你也能使用如下方法来编译:
linux> ./configure --with-apxs=/usr/local/apache/bin/apxs
linux> make
  apxs是个apache安装设置时生成的一个小小的perl脚本。他能使象resin这种模块获得apache所有的设置路径。你应该能用whereis apxs获得他的位置。
  如果你对设置选项需要更全方面细致的制定的话,你还能使用 ./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
export RESIN_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文件。

  
  
7、启动Servlet引擎
  目前你需要启动servlet的引擎。和apache配合、resin独立运行,resin的启动方法都是相同的。当然,对resin1.2/bin/httpd.sh这个脚本文件来说,你相同能使用start和stop参数。
linux> resin1.2/bin/httpd.sh
Resin 1.2.s010113 -- Sat Jan 13 11:17:18 PST 2001
http listening to *:8080
srun listening to localhost: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.sh stop"就是通过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是Servlet API2.0兼容并和Apache一起使用的容器。Tomcat是个完全重写的并和Servlet API2.2和JSP1.1兼容的容器。这通过前面的说明也能看出来。Tomcat使用了一些为Jserv而写的代码,特别是Jserv的Apache接口,但这是唯一的相同之处.
  和resin相比,Tomcat更象是个正在研究的项目。resin早能支持sun的j2ee,而在tomcat v3.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
  tar zxvf jdk1_3_0-linux-i386.tar.gz
  ln -s jdk1.3.0 jdk
  cd /usr/local
  tar zxvf jakarta-tomcat.tar.gz
  ln -s jakarta-tomcat tomcat
  注意修改软件包的名称。
  3、设置环境变量,在/etc/profile或登陆用户目录~/.bash_profile中设置环境变量如下:
JAVA_HOME=/usr/local/jdk
TOMCAT_HOME=/usr/local/tomcat
CLASSPATH=$JAVA_HOME/lib/tools.jar
export JAVA_HOME TOMCAT_HOME CLASSPATH
  4、能启动Tomcat自带的调试环境,端口8080
  启动:/usr/local/tomcat/bin/tomcat.sh start (这是后台启动)
  或/usr/local/tomcat/bin/startup.sh
  停止:/usr/local/tomcat/bin/tomcat.sh stop (这是停止后台服务)
  或/usr/local/tomcat/bin/shutdown.sh
  访问:
http://localhost:8080/examples

  5、建立Apache和Tomcat联系:
  1)cp mod_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第一行为:
  LoadModule jserv_module /usr/lib/apache/mod_jserv.so

  4)重新启动WWW服务:
  /usr/local/tomcat/bin/tomcat.sh stop
  /usr/local/tomcat/bin/tomcat.sh start
  /etc/rc.d/init.d/httpd restart
  5)目前能通过lynx
http://localhost/examples
访问jsp/servlet
  6、加入一个新的映射目录(如:通过
http://localhost/new_app
访问,/new_app映射到系统 目录/home/httpd/new_app)
  1)stop Tomcat和Apache
  2)vi /usr/local/tomcat/conf/server.xml,加入:
  
  
  3)/usr/local/tomcat/bin/tomcat.sh start
  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+IBM Webshpere解决方案(JSP)
  也许你长期以来使用微软的产品,下意识的难以接受一切都免费的服务器系统,那么我们更有非常多其他的选择,例如鼎鼎有名的蓝色巨人??也许他能够使你更觉放心^_^。IBM WebSphere Application Server 是一种功能完善、开放的Web应用程式服务器,是IBM电子商务计划的核心部分,具有以下的特性:
  1、基于Java和Servlets的Web应用程式运行环境,包含了为Web站点提供服务所需的一切,包括项目管理,连接数据库,Java Servlet代码生成器,beans和servlets研发工具,HTML编辑器,网站发布等,为研发Servlets和Javabeans提供了多种向导。 WebSphere Performance Pack作为网络优化管理工具,能减少网络服务器的拥挤现象,扩大容量,提高Web服务器性能。
  2、运行时能协同并扩展Apache、Netscape、 IIS 和IBM 的HTTPWeb服务器,因此能成为强大的Web应用服务器。
  3、包含了eNetworkDispatcher、WebTrafficeExpress代理服务器和AFS分布式文件系统,能提供可伸缩的Web服务器环境。
  在本文的这一部分主要讲解IBM WebSphere应用服务器。我们主要简介两种安装,一个是从CD安装的标准版本,一个是你能从网上的下载的60天体验版。
1、安装pdksh
  你能从安装光盘里找到适合你linux系统版本的pdksh(Public Domain Korn Shell),或从pdksh的Web 站点:
http://www.cs.mun.ca/~michael/pdksh/
获得你需要的版本。
2、运行安装脚本
  如果你想IBM WebSphere应用服务器和现有的Web服务器配合使用,请在安装前先停止该web服务器的运行。例如httpd stop或apachectl stop。你还需要在X环境下安装。
  安装的过程非常简单:
  a、mount上光驱,例如:mount /dev/cdrom /mnt/cdrom;
  b、进入光驱所在路径,例如:cd /mnt/cdrom;
  c、运行安装脚本:./install.sh。
  整个安装过程帮助你做了如下的事:
   安装IBM Developer Kit
   安装IBM HTTP Server作为Web服务器(可选择)
   安装WebSphere plug-in for the Web server
   安装一个新的IBM UDB DB2拷贝作为WebSphere管理数据库(只有Advanced Edition支持,标准版不支持)
   设置你所选择的支持的数据库,包括DB2的安装版本(只有Advanced Edition支持,标准版不支持)
   安装IBM WebSphere应用服务器
   安装IBM Distributed Debugger和Object Level Trace (OLT)
3、设置Web服务器
  如果你使用的是IBM HTTP Server,基本不必做什么改动。如果使用Apache服务器,你需要在运行前设置Web服务器:
  a、打开apache服务器的设置文件httpd.conf;
  b、添加如下几行
LoadModule app_server_module /opt/IBMWebAS/bin/mod_app_server.so
AddModule mod_app_server.c
Alias /IBMWebAS/ /opt/IBMWebAS/web
NcfAppServerConfig BootFile /opt/IBMWebAS/properties/bootstrap.properties  
  c、拷贝WebSphere的Samples目录到Web服务器的document_root,如下所示:
  cp -r /opt/IBMWebAS/WSsamples document_root
  cp -r /opt/IBMWebAS/WSsamplesIDB document_root
  注意:opt是指你的WebSphere服务器安装的目录,document_root是指你web服务器的文件发布目录。
4、启动Web服务器
  无论你使用的是IBM HTTP Server还是Apache服务器,如果 Web服务器正在运行,你需要停止他。使用restart命令重启这个服务。
  启动IBM HTTP Server 1.3.12,使用如下命令:
/opt/IBMHTTPServer/bin/apachectl restart

5、测试安装的结果
  a、用root身份在一个独立的虚拟终端启动WebSphere administrative server,使用如下命令:
cd /opt/IBMWebAS/bin
./startupServer.sh
  b、等待,一般需要5分钟,直到/opt/IBMWebAS/logs/tracefile文件中出现如下信息:“WebSphere Administration Server is open for e-business”。
  c、用root身份在一个独立的虚拟终端启动Java administrative console,使用如下命令:
cd /opt/IBMWebAS/bin
./adminclient.sh
  d、当终端屏幕下面出现了控制台已准备就绪的提示后,你能开始准备运行了。
安装下载的60天体验版
  请查阅
  
http://www-4.ibm.com/software/webservers/appserv/download_linux.html
  以了解这个体验版的有关信息。
  缺省的,这个体验版的安装是个快速安装(Quick Install)的过程,意味着自动安装IBM Developer Kit,IBM HTTP Server,和一个InstantDB database产品。在
http://www.ibm.com/linux
能下载到这个体验版本。
  1、解开下载回来的压缩包:
tar -xvf edn_trial_was3_5.tar

  在edn的位置如果是“adv”表明是Advanced Edition 如果是“std”表明是标准版。
  2、运行快速安装脚本,改动当前路径:
cd edntrial

  然后运行安装脚本:
./quickinstall.sh

  3、你会看见JDK、IBM HTTP Server和WebSphere应用服务器的RPM包显示一串数字信息提示安装的完成度。
  完成安装以后,重新启动Web server,然后启动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世界的成熟产品,功能全方面,设置需求高。各有所长,能按照你的需要来自己选择。