在Linux上構建JSP環境(轉)
在Linux上構建JSP環境(轉)[@more@] 隨著網路的迅猛發展和JAVA語言的流行,許多公司都開始使用JSP來開發自己的動態網站,在Windows系統下配置JSP環境是一件比較容易的事情,但在Linux下配置JSP的環境確比較複雜,筆者查閱多方資料,經過反覆摸索和嘗試,終於將其配置成功,現將其方法公佈如下:
一、配置過程中使用到的軟體包:
Apache_1.3.12.tar.gz
ApacheJserv-1.1.2.tar.gz
gnujsp-1.0.tar.gz
JSDK-2.0.tar.gz
JDK-1.2.2.tar.gz(For Linux版本)
以上所需軟體可在Apache網站或Sun網站下載。
二、 配置要求
RedHat 5.x 或 6.x (筆者在TurboLinux 4.02/6.0 Bluepoint1.0/2.0 等系統中都順利編譯、配置透過)
JSDK2.0(其實就是需要一個 70多k的jsdk.jar)
gnujsp1.0(其實就是需要裡面的jar檔案而已)
JDK-1.x.x or JDK-1.2.x(兩個版本都能夠順利透過編譯和配置)
ApacheJserv1.0 or 1.x.x 編譯需要的make,gcc等程式、編譯器與函式庫
三、 基本配置原理
要讓jsp能夠正確解析並執行良好的話,需要確保ajp1.2(apacheJserv protocol1.2)可以正常地在本地(local)埠8007通訊,Servlet需要能夠正常執行,並且要合理配置好Jserv的配置檔案使gnujsp正確解析jsp檔案。本文采用static(靜態)編譯方式編譯 ApacheJserv。
四、 基本步驟
首先要確保ApacheJserv正確編譯並測試透過。然後正確配置ApacheJserv的配置檔案,讓gnujsp可以解析jsp檔案。
以下是安裝步驟示意圖:
JDK-->JSDK-->apache(基本配置)-->ApacheJserv(配置/編譯)-->apache(配置/編譯/安裝) -->gnujsp-->編輯ApacheJserv配置檔案-->測試-->OK
五、 詳細過程
1、安裝JDK
其實不存在什麼安裝,只需要將JDK複製到一個固定目錄就可以了。這裡筆者採用JDK-1.2.2的二進位制版本。對於採用1.1.x的讀者,如果是選擇了static的方式 將Apache和ApacheJserv整和,出現故障的時候可以採用DSO模式(建議JDK-1.1.x版本的都採 用DSO模式比較好)。
#tar xfz JDK-1.2.2-linux-i386.tar.gz
#mv JDK-1.2.2 /www/JDK122
2、安裝JSDK
和安裝JDK道理一樣,只需要解包後複製到一個固定目錄就可以了。 不過要注意的是,這裡實際上只是用到這個包的jsdk.jar檔案,所以一定要知道這個檔案的路徑。
#tar xfz jsdk-2.0.tar.gz
#mv JSDK-2.0 /www/jsdk
#ls -l /www/jsdk/lib
total 80 -r--r--r-- 1 root root 76453 Jun 28 01:03 jsdk.jar
3、apache基本配置
這個其實並不能說是真正的配置,只是在第一次解包的時候要生成一些必須的.h檔案才需要 的一步而已。相當於預配置。
#tar xfz apache_1.3.12.tar.gz
#cd apache_1.3.12
#./configure
#cd ..
這樣就會生成了諸如httpd.h等的標頭檔案。如果沒有這些檔案的話,以後配置ApacheJserv或者 Php3等都會報錯的。
4、ApacheJserv配置與編譯
這裡需要使用的指令至少有:
--with-apache-src= (指定了apache原始碼的路徑,用於static方式的編譯)
--with-jdk-home= (指定jdk的根目錄)
--with-JSDK= (指定jsdk.jar的目錄,注意是大寫的JSDK!!!)
至於其他的並不是一定要寫,但是建議還是要指定諸如安裝目錄,jdk平臺號碼(1或者2)等。 其中java-platform是這樣指定的:即如果使用的是jdk-1.1.x的就是1(預設是1,可以不寫)。如果是jdk-1.2.x就指定是2。
#tar xfz ApacheJserv-1.1.2.tar.gz
#cd ApacheJserv-1.1.2
#./configure --with-apache-src=../apache_1.3.12 --prefix=/www/jserv
>--with-jdk-home=/www/jdk122 --with-java-platform=2
>--with-JSDK=/www/jsdk/lib/jsdk.jar --disable-debugging
#make
#make install
#cd ..
5、Apache的配置編譯
關於Apache的配置很多文件都有說明,這裡就不贅述了。
#cd apache_1.3.12
#./configure --prefix=/www/httpd --activate-module=src/modules/jserv/libjserv.a
#make
#make install
6、gnujsp安裝
其實只是需要gnujsp-1.0中的幾個jar檔案而已。
#tar xfz gnujsp-1.0.tar.gz
#mkdir /www/gnujsp
#cp gnujsp-1.0/lib/*.jar /www/gnujsp
#mkdir /www/gnujsp/bean_jsp
#ls -l /www/gnujsp
drwxr-xr-x 10 root root 4096 Sep 15 15:56 bean_jsp/
-rw-rw-r-- 1 root root 125972 Sep 15 12:55 gnujsp10.jar
-rw-rw-r-- 1 root root 153015 Sep 15 12:55 gnujsp10test.jar
-rw-rw-r-- 1 root root 37291 Sep 15 12:55 servlet-2.0-plus.jar
-rw-r--r-- 1 root root 38826 Sep 15 12:55 servlet-2.1.jar
7、Jserv配置檔案的編輯
這個是jsp是否能夠正確解析使用的關鍵,也是本文的重點。
關鍵點在於設定好jserv的相關檔案:
jserv.conf
jserv.properties
zone.properties
或者新建立一個properties檔案,編輯的順序大概是:
jserv.conf-->jserv.properties-->zone.properties-->自定義的properties檔案。
現在假設你需要定義一個叫gsp的zone,那麼可以按照以下步驟和方法編輯相關內容:
*jserv.conf
在編輯這個檔案前,請將"include /www/jserv/etc/jserv.conf"這句 新增到apache的httpd.conf檔案內。文件中說這句話可以放到任何地方,不過經過實踐發現:最好還是放到httpd.conf的末尾!!!!!
你可以這樣執行:
#echo "include /www/jserv/etc/jserv.conf" >> /www/httpd/conf/httpd.conf
做好後,再用例如vi編輯器編輯jserv.conf。如果你想記錄(log)jserv的所有動作,那麼最好是允許log,去掉以下語句註釋:
ApJServLogFile /www/jserv/logs/mod_jserv.log
然後找到"# Mount point for Servlet zones"這行,這裡是定義Servlet zones 的mount點的(類似linux的安裝點)。我們加入以下這行:
ApJServMount /gsp /gsp
接著找到ApJServAction關鍵字,加入以下這行:
ApJServAction .jsp /gsp/gnujsp
這個是定義了.jsp檔案是給gnujsp解析的。這樣jserv.conf檔案就基本設定好了。
*jserv.properties
這裡要設定一下wrapper.classpath,找到wrapper.classpath關鍵字,新增以下這行:
wrapper.classpath=/www/jdk122/lib/tools.jar
接著找到"# Servlet Zones parameters"這行,修改zones=root成為:
zones=root,gsp (新增gsp這個zone)
接著下面幾行在 root.properties=/www/jserv/etc/zone.properties後新增定義gsp的properties行:
gsp.properties=/www/jserv/etc/gsp.properties
基本上jserv.properties就設定好了。
*gsp.properties
至於zone.properties就不需要設定,因為這裡定義了一個新的zone-->gsp,起作用的是gsp.properties。
找到: # List of Repositories 這行,然後新增以下幾行:
repositories=/www/gnujsp/gnujsp10.jar
repositories=/www/gnujsp/servlet-2.0-plus.jar
repositories=/www/gnujsp/bean_jsp
其中第三行是定義了bean的響應目錄,這個目錄可以隨便定義。但是必須是真實存在的。
找到"# Servlet Aliases" 這行,新增別名行:
servlet.gnujsp.code=org.gjt.jsp.JspServlet
servlet.gnujsp.initArgs=checkclass=true,(請注意不要斷行回車)
%classpath%:%scratchdir%:/www/gnujsp/servlet-2.0-plus.jar
:/www/gnujsp/gnujsp10.jar
:/www/gnujsp/bean_jsp -d %scratchdir% -deprecation %source%
其中第二行開始到最後結束其實是同一樣,由於篇幅問題才加入了換行符號。 請大家一定要注意儘量使用同一行!!!!!!!,並且注意其中的符號不可以缺少任何一個。
其中一些引數做一下解釋:
pagebase意思是允許解析jsp檔案的起始目錄。
scratchdir是生成的.java 和.class檔案的臨時目錄。
請大家一定要注意這個目錄必須對nobody是可寫的!!!所以必須用chown命令將這個目錄的owner和 group改成nobody。
其後的是classpath是定義搜尋的路徑,其中要包括bean的目錄,否則沒辦法使用bean的。另外你也可以增加多幾個類似的目錄,但是必須在以上檔案中都要有定義。
至此:基本的設定就全部完成了。接下來就可以進行測試了。
8、測試
首先,確定你已經重新啟動了apache使所有設定生效。然後可以在瀏覽器裡輸入“”,如果出現:
Example Apache JServ Servlet
Congratulations, ApacheJServ 1.1.2 is working!
那麼說明servlets執行正常。 然後,就是建立一個test.jsp的檔案:
The Famous JSP Hello Program
The following line should contain the text "Hello GNUJSP World!".
If thats not the case start debugging ...
Hello World!
然後放到htdocs目錄內,並執行。如果正確被執行的話說明一切都基本正常了。
接下來測試一下gnujsp支援中文是否正確。將以上的test.jsp檔案修改成中文的字元就可以看出是否正確了。筆者的實驗中發現gnujsp對中文支援很不錯,不需要任何補丁。
六、 注意事項
在詳細步驟中筆者也強調多次了。這裡再強調一次。這些也是成功的關鍵點:
第一次解包apache後要先執行configure以產生相應的標頭檔案。
建立的scratchdir目錄必須是對任何人都是可寫的,用nobody的owner。
對於要使用bean目錄必須也在gsp.properties中定義好,而且需要使用的 bean元件必須放到你指定的bean目錄中。
不需要對系統的path進行修改,一些文章說需要修改,其實並不需要,因為配置檔案中有classpath。
(6)結束語
本文之所以將並不是非常複雜的配置過程和原理闡述得如此詳細,就是希望讀者閱讀後能夠正確配置jsp環境,不要再為jsp環境頭疼了。其實除了採用這 個方案外,還可以採用tomcat,jrun等等。gnujsp只是一個廉價的方案。效能和功能並不是很好
一、配置過程中使用到的軟體包:
Apache_1.3.12.tar.gz
ApacheJserv-1.1.2.tar.gz
gnujsp-1.0.tar.gz
JSDK-2.0.tar.gz
JDK-1.2.2.tar.gz(For Linux版本)
以上所需軟體可在Apache網站或Sun網站下載。
二、 配置要求
RedHat 5.x 或 6.x (筆者在TurboLinux 4.02/6.0 Bluepoint1.0/2.0 等系統中都順利編譯、配置透過)
JSDK2.0(其實就是需要一個 70多k的jsdk.jar)
gnujsp1.0(其實就是需要裡面的jar檔案而已)
JDK-1.x.x or JDK-1.2.x(兩個版本都能夠順利透過編譯和配置)
ApacheJserv1.0 or 1.x.x 編譯需要的make,gcc等程式、編譯器與函式庫
三、 基本配置原理
要讓jsp能夠正確解析並執行良好的話,需要確保ajp1.2(apacheJserv protocol1.2)可以正常地在本地(local)埠8007通訊,Servlet需要能夠正常執行,並且要合理配置好Jserv的配置檔案使gnujsp正確解析jsp檔案。本文采用static(靜態)編譯方式編譯 ApacheJserv。
四、 基本步驟
首先要確保ApacheJserv正確編譯並測試透過。然後正確配置ApacheJserv的配置檔案,讓gnujsp可以解析jsp檔案。
以下是安裝步驟示意圖:
JDK-->JSDK-->apache(基本配置)-->ApacheJserv(配置/編譯)-->apache(配置/編譯/安裝) -->gnujsp-->編輯ApacheJserv配置檔案-->測試-->OK
五、 詳細過程
1、安裝JDK
其實不存在什麼安裝,只需要將JDK複製到一個固定目錄就可以了。這裡筆者採用JDK-1.2.2的二進位制版本。對於採用1.1.x的讀者,如果是選擇了static的方式 將Apache和ApacheJserv整和,出現故障的時候可以採用DSO模式(建議JDK-1.1.x版本的都採 用DSO模式比較好)。
#tar xfz JDK-1.2.2-linux-i386.tar.gz
#mv JDK-1.2.2 /www/JDK122
2、安裝JSDK
和安裝JDK道理一樣,只需要解包後複製到一個固定目錄就可以了。 不過要注意的是,這裡實際上只是用到這個包的jsdk.jar檔案,所以一定要知道這個檔案的路徑。
#tar xfz jsdk-2.0.tar.gz
#mv JSDK-2.0 /www/jsdk
#ls -l /www/jsdk/lib
total 80 -r--r--r-- 1 root root 76453 Jun 28 01:03 jsdk.jar
3、apache基本配置
這個其實並不能說是真正的配置,只是在第一次解包的時候要生成一些必須的.h檔案才需要 的一步而已。相當於預配置。
#tar xfz apache_1.3.12.tar.gz
#cd apache_1.3.12
#./configure
#cd ..
這樣就會生成了諸如httpd.h等的標頭檔案。如果沒有這些檔案的話,以後配置ApacheJserv或者 Php3等都會報錯的。
4、ApacheJserv配置與編譯
這裡需要使用的指令至少有:
--with-apache-src= (指定了apache原始碼的路徑,用於static方式的編譯)
--with-jdk-home= (指定jdk的根目錄)
--with-JSDK= (指定jsdk.jar的目錄,注意是大寫的JSDK!!!)
至於其他的並不是一定要寫,但是建議還是要指定諸如安裝目錄,jdk平臺號碼(1或者2)等。 其中java-platform是這樣指定的:即如果使用的是jdk-1.1.x的就是1(預設是1,可以不寫)。如果是jdk-1.2.x就指定是2。
#tar xfz ApacheJserv-1.1.2.tar.gz
#cd ApacheJserv-1.1.2
#./configure --with-apache-src=../apache_1.3.12 --prefix=/www/jserv
>--with-jdk-home=/www/jdk122 --with-java-platform=2
>--with-JSDK=/www/jsdk/lib/jsdk.jar --disable-debugging
#make
#make install
#cd ..
5、Apache的配置編譯
關於Apache的配置很多文件都有說明,這裡就不贅述了。
#cd apache_1.3.12
#./configure --prefix=/www/httpd --activate-module=src/modules/jserv/libjserv.a
#make
#make install
6、gnujsp安裝
其實只是需要gnujsp-1.0中的幾個jar檔案而已。
#tar xfz gnujsp-1.0.tar.gz
#mkdir /www/gnujsp
#cp gnujsp-1.0/lib/*.jar /www/gnujsp
#mkdir /www/gnujsp/bean_jsp
#ls -l /www/gnujsp
drwxr-xr-x 10 root root 4096 Sep 15 15:56 bean_jsp/
-rw-rw-r-- 1 root root 125972 Sep 15 12:55 gnujsp10.jar
-rw-rw-r-- 1 root root 153015 Sep 15 12:55 gnujsp10test.jar
-rw-rw-r-- 1 root root 37291 Sep 15 12:55 servlet-2.0-plus.jar
-rw-r--r-- 1 root root 38826 Sep 15 12:55 servlet-2.1.jar
7、Jserv配置檔案的編輯
這個是jsp是否能夠正確解析使用的關鍵,也是本文的重點。
關鍵點在於設定好jserv的相關檔案:
jserv.conf
jserv.properties
zone.properties
或者新建立一個properties檔案,編輯的順序大概是:
jserv.conf-->jserv.properties-->zone.properties-->自定義的properties檔案。
現在假設你需要定義一個叫gsp的zone,那麼可以按照以下步驟和方法編輯相關內容:
*jserv.conf
在編輯這個檔案前,請將"include /www/jserv/etc/jserv.conf"這句 新增到apache的httpd.conf檔案內。文件中說這句話可以放到任何地方,不過經過實踐發現:最好還是放到httpd.conf的末尾!!!!!
你可以這樣執行:
#echo "include /www/jserv/etc/jserv.conf" >> /www/httpd/conf/httpd.conf
做好後,再用例如vi編輯器編輯jserv.conf。如果你想記錄(log)jserv的所有動作,那麼最好是允許log,去掉以下語句註釋:
ApJServLogFile /www/jserv/logs/mod_jserv.log
然後找到"# Mount point for Servlet zones"這行,這裡是定義Servlet zones 的mount點的(類似linux的安裝點)。我們加入以下這行:
ApJServMount /gsp /gsp
接著找到ApJServAction關鍵字,加入以下這行:
ApJServAction .jsp /gsp/gnujsp
這個是定義了.jsp檔案是給gnujsp解析的。這樣jserv.conf檔案就基本設定好了。
*jserv.properties
這裡要設定一下wrapper.classpath,找到wrapper.classpath關鍵字,新增以下這行:
wrapper.classpath=/www/jdk122/lib/tools.jar
接著找到"# Servlet Zones parameters"這行,修改zones=root成為:
zones=root,gsp (新增gsp這個zone)
接著下面幾行在 root.properties=/www/jserv/etc/zone.properties後新增定義gsp的properties行:
gsp.properties=/www/jserv/etc/gsp.properties
基本上jserv.properties就設定好了。
*gsp.properties
至於zone.properties就不需要設定,因為這裡定義了一個新的zone-->gsp,起作用的是gsp.properties。
找到: # List of Repositories 這行,然後新增以下幾行:
repositories=/www/gnujsp/gnujsp10.jar
repositories=/www/gnujsp/servlet-2.0-plus.jar
repositories=/www/gnujsp/bean_jsp
其中第三行是定義了bean的響應目錄,這個目錄可以隨便定義。但是必須是真實存在的。
找到"# Servlet Aliases" 這行,新增別名行:
servlet.gnujsp.code=org.gjt.jsp.JspServlet
servlet.gnujsp.initArgs=checkclass=true,(請注意不要斷行回車)
%classpath%:%scratchdir%:/www/gnujsp/servlet-2.0-plus.jar
:/www/gnujsp/gnujsp10.jar
:/www/gnujsp/bean_jsp -d %scratchdir% -deprecation %source%
其中第二行開始到最後結束其實是同一樣,由於篇幅問題才加入了換行符號。 請大家一定要注意儘量使用同一行!!!!!!!,並且注意其中的符號不可以缺少任何一個。
其中一些引數做一下解釋:
pagebase意思是允許解析jsp檔案的起始目錄。
scratchdir是生成的.java 和.class檔案的臨時目錄。
請大家一定要注意這個目錄必須對nobody是可寫的!!!所以必須用chown命令將這個目錄的owner和 group改成nobody。
其後的是classpath是定義搜尋的路徑,其中要包括bean的目錄,否則沒辦法使用bean的。另外你也可以增加多幾個類似的目錄,但是必須在以上檔案中都要有定義。
至此:基本的設定就全部完成了。接下來就可以進行測試了。
8、測試
首先,確定你已經重新啟動了apache使所有設定生效。然後可以在瀏覽器裡輸入“”,如果出現:
Example Apache JServ Servlet
Congratulations, ApacheJServ 1.1.2 is working!
那麼說明servlets執行正常。 然後,就是建立一個test.jsp的檔案:
The Famous JSP Hello Program
The following line should contain the text "Hello GNUJSP World!".
If thats not the case start debugging ...
Hello World!
然後放到htdocs目錄內,並執行。如果正確被執行的話說明一切都基本正常了。
接下來測試一下gnujsp支援中文是否正確。將以上的test.jsp檔案修改成中文的字元就可以看出是否正確了。筆者的實驗中發現gnujsp對中文支援很不錯,不需要任何補丁。
六、 注意事項
在詳細步驟中筆者也強調多次了。這裡再強調一次。這些也是成功的關鍵點:
第一次解包apache後要先執行configure以產生相應的標頭檔案。
建立的scratchdir目錄必須是對任何人都是可寫的,用nobody的owner。
對於要使用bean目錄必須也在gsp.properties中定義好,而且需要使用的 bean元件必須放到你指定的bean目錄中。
不需要對系統的path進行修改,一些文章說需要修改,其實並不需要,因為配置檔案中有classpath。
(6)結束語
本文之所以將並不是非常複雜的配置過程和原理闡述得如此詳細,就是希望讀者閱讀後能夠正確配置jsp環境,不要再為jsp環境頭疼了。其實除了採用這 個方案外,還可以採用tomcat,jrun等等。gnujsp只是一個廉價的方案。效能和功能並不是很好
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10796304/viewspace-963248/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Apache與Tomcat4整合構建jsp環境(轉)ApacheTomcatJS
- java編譯環境的構建(轉)Java編譯
- linux下CUDA開發環境構建Linux開發環境
- 在linux下搭建wiki環境【轉】Linux
- dockerfile構建flask環境DockerFlask
- docker構建php環境DockerPHP
- Windows 下使用 Vagrant 構建 Linux 開發環境WindowsLinux開發環境
- linux下jsp環境的搭建薦LinuxJS
- 在windows 2000下安裝JSP執行環境 (轉)WindowsJS
- Docker 構建PHP 映象環境DockerPHP
- 構建ORACLE高可用環境Oracle
- Unix環境中配置JSP的方法(轉)JS
- tomcat+mysql部署jsp環境!!!!(轉)TomcatMySqlJS
- 在linux,windows上安裝rubyonrails開發環境LinuxWindowsAI開發環境
- 在 KubeSphere 中使用 Rook 構建雲原生儲存環境
- 在Linux環境下執行DOS命令(轉)Linux
- Linux下jsp環境:apache,tomcat配置LinuxJSApacheTomcat
- linux上java環境配置LinuxJava
- 構建Java Web開發環境JavaWeb開發環境
- Docker構建redis叢集環境DockerRedis
- 求救~~~~~tomcat+mysql部署jsp環境!!!!!(轉)TomcatMySqlJS
- 環境變數{Linux環境(也稱為Shell環境)}(轉)變數Linux
- 在Linux環境下玩PlayStation模擬器(轉)Linux
- go 在 Windows 上環境變數GoWindows變數
- 在CentOS 7上搭建Docker環境CentOSDocker
- 用 Docker 構建 MySQL 主從環境DockerMySql
- Jenkins +nginx 搭建前端構建環境JenkinsNginx前端
- vue 構建環境切換指令碼Vue指令碼
- docker 靈活的構建 PHP 環境DockerPHP
- 用 Docker 構建 PHP 開發環境DockerPHP開發環境
- Grunt自動化構建環境搭建
- XamarinForms教程構建XamarinForms開發環境ORM開發環境
- .NET環境構建CAS客戶端客戶端
- 構建利器Lisp的創作環境Lisp
- 構建Hadoop偽分散式環境Hadoop分散式
- 在Linux環境中安裝Qmail的經歷(轉)LinuxAI
- 在linux環境下啟動時開啟numlock(轉)Linux
- JSP的環境引擎--websphereJSWeb