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

火星人 @ 2014-03-12 , reply:0


  

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文件。

 

 

    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.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,加入:

 

 debug="0" reloadable="true"> 
 

 

  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世界的成熟產品,功能全面,配置要求高。各有所長,可以按照你的需要來自己選擇。

(責任編輯:A6)






[火星人 via ] Linux+Apache+PHP+JSP 的Resin解決方案已經有183次圍觀

http://www.coctec.com/docs/enterprise/show-post-73508.html