在 UNIX 中安裝和配置開(kāi)發(fā) Web 服務(wù)器
開(kāi)始之前
了解本教程中包含的內(nèi)容以及如何最好地利用本教程。
關(guān)于本教程
您希望(或需要)安裝功能齊全的應(yīng)用程序服務(wù)器來(lái)開(kāi)發(fā)、測(cè)試、部署和優(yōu)化 Java™ 2 Platform, Enterprise Edition (J2EE™) 應(yīng)用程序?或者,也許您只是希望了解一些新知識(shí),因此您決定建立自己的應(yīng)用程序服務(wù)器環(huán)境。您將從哪里開(kāi)始著手?
無(wú)論您的動(dòng)機(jī)如何,如果您在閱讀本教程,您很可能熟悉有關(guān)網(wǎng)站如何工作的基礎(chǔ)知識(shí),以及從瀏覽器訪問(wèn)應(yīng)用程序可能需要什么最低公共標(biāo)準(zhǔn)(域、代碼、Web 瀏覽器、數(shù)據(jù)庫(kù),等等)。只要您掌握了基礎(chǔ)知識(shí),具有對(duì) Web 或應(yīng)用程序服務(wù)器的需要,能夠訪問(wèn) Unix 服務(wù)器,并且渴望了解有關(guān) Web 服務(wù)器管理的點(diǎn)滴,那么本教程就是為您準(zhǔn)備的。
目標(biāo)
在本教程中,您將了解:
有關(guān) Apache Tomcat 和 UNIX 的介紹,以及讓您開(kāi)始起步所需要的知識(shí)。
企業(yè)與獨(dú)立 Web 體系結(jié)構(gòu)之比較。
如何從頭設(shè)置 UNIX 服務(wù)器,以便為 Web 或應(yīng)用程序服務(wù)器的安裝做好準(zhǔn)備。
有關(guān)如何安裝和啟動(dòng) Tomcat Web 服務(wù)器的詳細(xì)、循序漸進(jìn)的說(shuō)明。
有關(guān)設(shè)置 Tomcat Web Application Manager 訪問(wèn)的信息。
用于部署示例應(yīng)用程序的說(shuō)明。
其他資源。
先決條件
本教程假設(shè)您已經(jīng)安裝了所選擇的基本 UNIX 操作系統(tǒng)。要運(yùn)行本教程中的示例,您還必須安裝并運(yùn)行 Tomcat 版本 6。
系統(tǒng)要求
服務(wù)器應(yīng)該至少有 10GB 的可用硬盤空間和最低 512MB 的內(nèi)存。在開(kāi)始之前,您需要在 UNIX 服務(wù)器上安裝以下附加工具:
Web 瀏覽器:任何瀏覽器都行。
Java 2 Standard Edition Runtime Environment (JRE) 5.0 發(fā)布版或更新版本:Apache Tomcat 版本 6 需要該 JRE。
C 編譯器:遺憾的是,諸如 Solaris 和 IBM® AIX® 等主流的 UNIX 版本沒(méi)有附帶這樣的編譯器。有關(guān)更多信息,請(qǐng)參閱參考資料中指向 GNU GCC 文章的鏈接。
文件提取工具:在您的服務(wù)器上,您很可能需要 gunzip、tar、bzcat,并且可能需要 GNU make 和 tar(gmake、gtar——可從 GNU 站點(diǎn)下載),以正確地提取文件。
要檢查服務(wù)器上已經(jīng)有哪些工具在運(yùn)行,可以運(yùn)行以下命令:
cd /usr
Find . –name *.tar (repeat for *make, *zip, etc.)
Tomcat 代碼:在繼續(xù)之前,您需要從 Apache 下載站點(diǎn)下載 Tomcat 版本 6 的代碼。將 tar.gz 文件保存到您的服務(wù)器。
Tomcat 與 UNIX
本教程的目的不是為您提供與 Tomcat 相關(guān)的所有內(nèi)容的權(quán)威指南,而是讓您迅速奠定有關(guān)獨(dú)立開(kāi)發(fā)或測(cè)試服務(wù)器環(huán)境的扎實(shí)知識(shí)基礎(chǔ)。當(dāng)您具備這樣的基礎(chǔ)時(shí),如果樂(lè)意的話,可以將其擴(kuò)展到全面的企業(yè)環(huán)境。
為什么使用 Tomcat?
為什么應(yīng)該使用 Tomcat 而不是使用諸如 Jboss、Geronimo 或 WebSphere Application Server Express 等備選方案呢?
Tomcat 版本 6 本身是一個(gè)輕量級(jí)的解決方案。它沒(méi)有附帶所有的 Java Platform, Enterprise Edition (Java EE) 功能以及可在 Jboss、Geronimo 和 IBM WebSphere® Application Server Express 中找到的附加軟件包,但它也不需要多少內(nèi)存,即使在較小的服務(wù)器上也運(yùn)行得非常快速。此外,它還是免費(fèi)可用的。
Tomcat 是一個(gè) JavaServer™ Pages (JSP)/Servlet 容器,僅支持基本的 Java 應(yīng)用程序服務(wù)器功能。它缺乏可伸縮性和 Java EE 版本 5 遵從性,這就是很少在生產(chǎn)環(huán)境中使用它的原因。
如果您希望在企業(yè)環(huán)境中使用新服務(wù)器,更顯而易見(jiàn)的 UNIX 版本是 AIX 和 Solaris。事實(shí)上,Solaris 擁有最高的企業(yè)市場(chǎng)份額百分比。其他 UNIX 選擇包括 FreeBSD 和 Mac OS X。
Tomcat 的 UNIX 和 Windows® 安裝
可以在 Windows 計(jì)算機(jī)上運(yùn)行本教程中的示例。在經(jīng)過(guò)多年僅迎合 UNIX 以后,Apache 社區(qū)通過(guò)為 Windows 平臺(tái)進(jìn)行開(kāi)發(fā)而實(shí)現(xiàn)了此功能。然而,取決于您所查對(duì)的統(tǒng)計(jì)數(shù)據(jù),90% 以上的 Web 服務(wù)器體系結(jié)構(gòu)解決方案中都使用了 Apache Web 服務(wù)器和后續(xù)產(chǎn)品。長(zhǎng)話短說(shuō),UNIX 提供了純多用戶操作系統(tǒng)的穩(wěn)定性、安全性和簡(jiǎn)單性,這是 Windows Server® 操作系統(tǒng)所無(wú)法比擬的。
話雖這樣說(shuō),但是如果您決定使用 Windows,您應(yīng)該在繼續(xù)之前注意 UNIX 與 Windows 之間的 Tomcat 設(shè)置所存在的一些區(qū)別:
在 UNIX 服務(wù)器上提取初始安裝文件可能需要 bzcat、gunzip 和 tar 或 gtar。Windows 服務(wù)器計(jì)算機(jī)通常使用 WinZip 或類似的實(shí)用工具。
UNIX 服務(wù)器上的 PATH 設(shè)置更加明顯。Windows 仍然使用 path 語(yǔ)句,但大部分設(shè)置是在幕后或在安裝軟件時(shí)自動(dòng)完成的。
UNIX 設(shè)置和配置中的權(quán)限注意事項(xiàng)更為重要。UNIX 服務(wù)器的卓越安全強(qiáng)度也是問(wèn)題的一個(gè)最大根源:權(quán)限問(wèn)題。在初始安裝軟件時(shí),您需要正確的權(quán)限才能將軟件寫入到基本操作系統(tǒng)的文件系統(tǒng)——/var、/tmp,等等。此外,在將各種內(nèi)部和外部軟件組件連接到 UNIX 服務(wù)器時(shí),始終要注意權(quán)限注意事項(xiàng)。始終要考慮到 ID、組和正確的訪問(wèn)權(quán)限。
在 Windows 中,安裝是基于圖形用戶界面 (GUI) 的,而 UNIX 傳統(tǒng)地使用命令行界面 (CLI)。這種情況隨著 Gnome 和其他圖形環(huán)境的推出而有所改變,包括日益流行的 Mac OS X 版本 10.5 Leopard。然而,純粹主義者始終鐘情于 CLI。此外,CLI 也是最好的學(xué)習(xí)方式。
Windows 使用 .bat 文件表示自動(dòng)化的批處理過(guò)程,使用 .exe 文件表示可執(zhí)行文件。UNIX 缺省使用 .sh 或 .ksh 文件擴(kuò)展名表示可執(zhí)行腳本等等。.sh 或 .ksh 格式取決于您使用哪一種 Shell。
Tomcat 版本
面對(duì)每個(gè)版本中包括的眾多修補(bǔ)程序、調(diào)整、新功能或執(zhí)行舊任務(wù)的新方法,有時(shí)很難決定應(yīng)該選擇使用哪一個(gè)軟件版本。在 Tomcat 中,您將面對(duì)同樣的問(wèn)題。我建議您考慮表 1 中的詳細(xì)信息,以使您的管理服務(wù)器與用于對(duì)正在部署的應(yīng)用程序進(jìn)行編碼的 J2EE 規(guī)范相匹配。
表 1. 與 Tomcat 版本相關(guān)的 JSP 規(guī)范
JSP 規(guī)范Tomcat 版本2.5/2.16.0.x2.4/2.05.5.x2.3/1.24.1.x2.2/1.13.3.x(已存檔)
另一種決定軟件版本的不那么技術(shù)性的方法,是堅(jiān)持使用您希望使用的軟件的最新穩(wěn)定版本。通常,您將獲得所有的最新安全修補(bǔ)程序和功能。
體系結(jié)構(gòu)概述
了解 Tomcat 的局限性以及典型的企業(yè)環(huán)境是如何設(shè)置的。
局限性
您的 Tomcat 安裝是否需要是純開(kāi)發(fā)環(huán)境中的單一服務(wù)器?這不是非常有限制性嗎?是的,事實(shí)上就是這樣!Tomcat 實(shí)際上已被下載了數(shù)百萬(wàn)次,并成功地在生產(chǎn)環(huán)境中運(yùn)行著許多著名的網(wǎng)站。然而,它具有其局限性。
可以使用商業(yè)軟件產(chǎn)品——特別是 IBM WebSphere Application Server,主要是由于它們完全的 J2EE 遵從性、附加的功能和安全性,它們對(duì)生產(chǎn)環(huán)境來(lái)說(shuō)遠(yuǎn)遠(yuǎn)更加優(yōu)異。如果您希望在全功能的生產(chǎn)環(huán)境中實(shí)現(xiàn) Tomcat,您仍然可以使用本教程來(lái)奠定基礎(chǔ)。
企業(yè)環(huán)境
如圖 1 所示的企業(yè)體系結(jié)構(gòu),差不多就是當(dāng)您在瀏覽器中按下 Enter 鍵時(shí),可能在幕后看到的內(nèi)容的精確描述。該體系結(jié)構(gòu)由重復(fù)的元素包組成,我看到這些元素正在為眾多的客戶工作著,包括 IBM 和美國(guó)空軍的價(jià)值數(shù)百萬(wàn)美元的任務(wù)關(guān)鍵型應(yīng)用程序。下面幾個(gè)部分將詳述圖 1 中的每個(gè)方面。
圖 1. 示例企業(yè)體系結(jié)構(gòu)
A. 網(wǎng)絡(luò)保護(hù)措施
通常,您的網(wǎng)絡(luò)擁有相應(yīng)的保護(hù)措施——路由器或防火墻,然后是代理服務(wù)器(明確地說(shuō)是反向代理),它們使 Web 請(qǐng)求與適當(dāng)?shù)挠蚱ヅ洹I踔猎谡?qǐng)求到達(dá)可能由安全隔離區(qū)域(demilitarized zone,DMZ)保護(hù)的網(wǎng)絡(luò)中的第一臺(tái)服務(wù)器之前,前端 IBM Tivoli® Access Manager (TAM)/TAM WebSEAL 服務(wù)器上就可能已經(jīng)存在某種級(jí)別的身份驗(yàn)證甚至授權(quán)。
B. Web 服務(wù)器
接下來(lái)是 Web 服務(wù)器。請(qǐng)注意,所有這些服務(wù)器都可能具有垂直和 水平故障轉(zhuǎn)移功能,這意味著在每個(gè)級(jí)別被克隆(甚至可能在軟件級(jí)別重復(fù))的單獨(dú)硬件。當(dāng) Web 服務(wù)器傳遞 Web 請(qǐng)求并執(zhí)行其提供靜態(tài)內(nèi)容的職責(zé)時(shí),您可能還有另一層執(zhí)行附加路由的網(wǎng)絡(luò)分配器(network dispatcher,ND),或者至少也是某個(gè)插件(例如 IBM HTTP Server [IHS] 插件)。
C. 應(yīng)用程序服務(wù)器(Servlet 引擎)
現(xiàn)在您已經(jīng)有了 J2EE 引擎 (WebSphere Application Server),它很可能包括 Web 或 Servlet 容器以及 Enterprise JavaBean (EJB) 容器,以處理基本和高級(jí)的 Java 功能及業(yè)務(wù)邏輯。您可能采用多個(gè)適配器來(lái)做許多事情,包括連接 Web 服務(wù)和 IBM WebSphere MQ 消息。而且,您多半擁有一個(gè)連接到 MySQL、IBM DB2® 或 Oracle 后端的數(shù)據(jù)庫(kù)連接池。
當(dāng)您與到輕量級(jí)目錄訪問(wèn)協(xié)議(Lightweight Directory Access Protocol,LDAP)服務(wù)器甚至遺留服務(wù)器的潛在連接結(jié)為一體時(shí),您就擁有了真正的 N 層體系結(jié)構(gòu)。下面,參考一個(gè)入門級(jí) Web 服務(wù)器環(huán)境。
開(kāi)發(fā)環(huán)境
查看圖 2,并假設(shè)它基于某個(gè)單一 UNIX 操作系統(tǒng)上的單一服務(wù)器安裝,該操作系統(tǒng)具有某些通過(guò)瀏覽器訪問(wèn) Internet 的途徑。該服務(wù)器將包含您的 Tomcat 安裝、各種操作系統(tǒng)級(jí)別的工具,以及(可能)您自己的本地?cái)?shù)據(jù)庫(kù),或者至少包括保存在本地存儲(chǔ)庫(kù)(本地目錄結(jié)構(gòu))中的軟件和應(yīng)用程序代碼。
注意:當(dāng)我提到 Tomcat 服務(wù)器 時(shí),我指的是整個(gè)容器。
圖 2. 示例獨(dú)立服務(wù)器體系結(jié)構(gòu)
雖然這一點(diǎn)也不像真正的企業(yè)體系結(jié)構(gòu),但是您至少能夠從自己的服務(wù)器中重復(fù)基本的應(yīng)用程序功能。這個(gè)服務(wù)器的功能將會(huì)有很多的限制,但是無(wú)論從哪點(diǎn)看,您都是將此安裝視為一個(gè)示例測(cè)試開(kāi)發(fā)服務(wù)器,或者如果您是管理員的話,則只是將其視為用于在其中進(jìn)行試驗(yàn)的服務(wù)器。
您可以選擇與 Tomcat 安裝一起設(shè)置和運(yùn)行單獨(dú)的 Apache HTTP Server 前端,但是就本教程而言,并不演示此操作方法,因?yàn)檫@樣需要更多的開(kāi)銷和更多的管理和設(shè)置工作。您還需要 mod_jk 模塊,您將必須設(shè)置正確的路由,等等。
無(wú)論采用哪種方式,下面讓我們?cè)诶^續(xù)進(jìn)行安裝和配置之前,首先討論一些常見(jiàn)問(wèn)題。
準(zhǔn)備服務(wù)器
通過(guò)配置變量、編輯配置文件、創(chuàng)建用戶等來(lái)準(zhǔn)備您的服務(wù)器。
設(shè)置路徑
除了必須在服務(wù)器上安裝的工具以外,您需要正確設(shè)置 Shell 的所有 PATH 變量設(shè)置。PATH 變量告訴 Shell 在何處尋找某些軟件安裝、工具等等。
JAVA_HOME
首先,您必須根據(jù)該版本中包括的說(shuō)明來(lái)安裝 JRE。我通常選擇使用完整的 Java 軟件開(kāi)發(fā)工具包 (JDK) 而不只是 JRE。如果您也是這樣,可以將 JAVA_HOME 環(huán)境變量設(shè)置為您安裝 JDK 的目錄的路徑名稱(例如,/usr/local/java/j2sdk5.0)。可以使用以下代碼來(lái)設(shè)置 JAVA_HOME 變量:
bash-3.00# export JAVA_HOME=/usr/jdk/instances/jdk1.5.0
您還可以運(yùn)行:
JAVA_HOME=/usr/bin/java; export JAVA_HOME'
(實(shí)際上不存在區(qū)別)。
輸入 echo 命令以復(fù)查上述命令已生效:
bash-3.00# echo $JAVA_HOME/usr/jdk/instances/jdk1.5.0
CATALINA_HOME(Tomcat 的缺省主目錄)
CATALINA_HOME 用于引用發(fā)布版本目錄的完整路徑名稱。可以使用以下代碼在您的服務(wù)器上設(shè)置此變量:
bash-3.00# export CATALINA_HOME=/opt/apache-tomcat-6.0.16
此代碼特定地與已安裝的 Tomcat 版本相關(guān)。如有疑問(wèn),可以按照您提取的 .tar 文件進(jìn)行命名,因?yàn)槟崛〉?.tar 文件的名稱中攜帶有正確的版本號(hào)。
在您的用戶身份下編輯 Shell 和配置文件
您也許注意到了,我在命令示例中有幾次引用了 Bash。長(zhǎng)話短說(shuō),登錄 UNIX 的用戶在服務(wù)器上運(yùn)行 Shell,以執(zhí)行允許他們導(dǎo)航和管理服務(wù)器的 CLI。這與其他操作系統(tǒng)并沒(méi)有什么不同,只不過(guò)更加靈活,因?yàn)槟梢酝ㄟ^(guò)輸入某個(gè)內(nèi)容來(lái)定義該 Shell,例如 Bourne Shell (sh) 或 Bourne-again Shell (bash)。
此外,取決于您使用的 Shell,您可以編輯 CLI 的自定義 Shell 配置文件,以自動(dòng)設(shè)置 PATH 變量,甚至設(shè)置別名字符來(lái)表示服務(wù)器上有用的常用命令。為此,可以編輯 .bashrc、.profile(Bash Shell 下的缺省配置文件)等等。可以使用 vi 編輯器來(lái)創(chuàng)建此文件,然后在您的 root、個(gè)人或特定于 Tomcat 的用戶 ID 下適當(dāng)?shù)鼐庉嬙撐募源_保在您每次登錄服務(wù)器時(shí)設(shè)置 PATH 變量。
在您的主目錄下,使用標(biāo)準(zhǔn) UNIX 編輯器 vi 創(chuàng)建 .profile 文件(如清單 1 所示)——如果該文件還不存在的話。
清單 1. 使用標(biāo)準(zhǔn) UNIX 編輯器創(chuàng)建 .profile
cd ~/ (home dir)vi .profile
輸入 i(表示進(jìn)入“插入模式),然后添加您在上面設(shè)置的每個(gè)路徑。一個(gè)示例可能類似如下所示:
# /bin/shstty istripPATH=$PATH:/usr/bin:/usr/local/bin:/usr/ucb:/etcexport PATHumask 077export SHELL=/usr/bin/kshexport ENV=$HOME/.kshrcexport EDITOR=viexport FCEDIT=vi#Tomcat specific PATHsexport JAVA_HOME=/usr/jdk/instances/jdk1.5.0export CATALINA_HOME=/opt/apache-tomcat-6.0.16
這還可能是添加附加 PATH 變量的好時(shí)機(jī),以便涵蓋安裝了將要引用的工具的所有領(lǐng)域。對(duì)于我的設(shè)置,我還需要?jiǎng)?chuàng)建以下兩個(gè)路徑:
bash-3.00# PATH=/usr/ccs/bin:$PATH; export PATH (for make cmd)bash-3.00# PATH=/usr/sfw/bin:$PATH; export PATH
用戶與組
如果將有多個(gè)用戶使用您的服務(wù)器,您肯定希望設(shè)置用戶和組權(quán)限,以允許不同的用戶訪問(wèn)不同的工具和文件系統(tǒng)。如果您將作為非 root 用戶運(yùn)行 Tomcat 安裝(建議用于大多數(shù)生產(chǎn)環(huán)境),這也是必需的。我將在一個(gè)后續(xù)的教程中詳細(xì)討論此話題,下面是一些要考慮的命令。
要?jiǎng)?chuàng)建 Tomcat 組,可以使用清單 2 中的代碼。
清單 2. 創(chuàng)建用于運(yùn)行 Tomcat 的唯一組
/usr/sbin/groupadd -g {specific gid. Leave this blank and the OS will assign you a gid}{group name}IE./usr/sbin/groupadd -g 10004 tomcatgroup
要?jiǎng)?chuàng)建 Tomcat 用戶,可以使用清單 3 中的代碼。
清單 3. 創(chuàng)建用于運(yùn)行 Tomcat 的唯一用戶
/usr/sbin/useradd -d {user home directory} -g {user primary group} -u{specific UID. You can leave this blank, and the operating system will assign you a UID.)-s {default shell path for this user} -c "{Description of the user}" {username}ie./usr/sbin/useradd -d /export/home/tomcat -g tomcatgroup -u 10010 -s /bin/ksh -c"Main Tomcat Administrative User" tomcat
下載并提取服務(wù)器安裝文件
了解用于提取服務(wù)器安裝文件的各種方法。
查找和移動(dòng)安裝文件
如果您是在使用 GUI,可以通過(guò)選擇 Launch > Applications > Utilities > Terminal 來(lái)打開(kāi)一個(gè)終端窗口。如果您將該文件保存到桌面,并且您仍然是 root 用戶,可以運(yùn)行命令 cd /Desktop。運(yùn)行 ls -ltr 以確定您的 Tomcat tar.gz 文件是否在那里。然后,將該文件移動(dòng)到 /opt 目錄下面(這是安裝大多數(shù)新軟件的地方)。要移動(dòng)安裝文件,可以輸入以下命令:
mv *tar.gz /opt
然后,輸入 ls ¨Cltr /opt 以確保該文件在那里。
設(shè)置權(quán)限
權(quán)限是 UNIX 系統(tǒng)的生命線。如果沒(méi)有正確的權(quán)限,您將無(wú)法做任何事情;如果不將權(quán)限限制到某些事情,任何用戶都可以做任何事情。這就是您必須首先授予自己對(duì)安裝文件的較高級(jí)別的權(quán)限的原因,這樣您(或另一個(gè)用戶)才能正確地執(zhí)行它。下一步,使用 umask 命令,如清單 4 所示,以確保您在提取安裝代碼時(shí),能夠?qū)⑽募鄳?yīng)地寫到所有的臨時(shí)和安裝目錄。
清單 4. 設(shè)置正確的權(quán)限和 umask
cd /optchmod +x *gz (same as chmod 775)umask 007 (makes any new files your user creates to be created with a 770 permission.Think chmod in reverse)
提取安裝文件
大多數(shù)代碼包都以 .tar 文件的形式提供,并將其進(jìn)一步壓縮為 .gz 文件。gunzip 命令只是將代碼包從第一層壓縮中展開(kāi)。
gunzip *.gz
提取 .tar 文件
最后,您必須對(duì)代碼進(jìn)行“untar(解壓縮)。這樣做將確切地按壓縮代碼的方式提取代碼——目錄和所有的文件。這就是務(wù)必在您需要安裝代碼的目錄路徑中解壓縮文件的原因。在 UNIX 中,最佳的目錄路徑是 /opt。
tar -xvf *.tar
此命令提取應(yīng)用程序文件。可以輸入 ls -latr 命令來(lái)查看所提取的文件。如果由于某種原因,您的安裝包附帶有 .bat 或 .exe 文件,您可以通過(guò)輸入以下命令來(lái)刪除那些文件:
rm *.exerm *.bat
建立 Tomcat 目錄以后,您可以繼續(xù)配置、編譯和啟動(dòng)該服務(wù)器。
配置、編譯和啟動(dòng)
我使用過(guò)的所有 Apache 產(chǎn)品都包括用于配置、編譯和啟動(dòng)該產(chǎn)品的步驟。此過(guò)程將讓代碼準(zhǔn)備就緒,告訴軟件如何安裝和安裝到何處,等等。
配置軟件
要配置 Tomcat 軟件,可以輸入以下命令:
cd $CATALINA_HOME/bin./configure --with-java=/usr/java
或者:
export JAVA_HOME./configure
編譯代碼
配置 Tomcat 軟件以后,就該編譯它了。
構(gòu)建二進(jìn)制和庫(kù)
清單 5 顯示了用于構(gòu)建 Tomcat 二進(jìn)制和庫(kù)的代碼。
清單 5. 構(gòu)建二進(jìn)制和庫(kù)
# gunzip jsvc.tar.gz# pwd/opt/apache-tomcat-6.0.16/bin# tar -xvf jsvc.tar# gmake
確保 gmake 的路徑在您的 PATH 中(例如,./sfw/bin/)。
注意:Tomcat 站點(diǎn)規(guī)定,在 FreeBSD 系統(tǒng)上,您應(yīng)該使用 GNU make (gmake)而不是本機(jī) BSD make 命令。
清單 6 中的代碼將生成可執(zhí)行文件 .jsvc。該文件是成功地將 Tomcat 作為守護(hù)進(jìn)程運(yùn)行所必需的。
清單 6. 設(shè)置 jsvc 權(quán)限并復(fù)制
chmod 775 jsvccp jsvc ..cd ..
啟動(dòng)服務(wù)器
您可以從 CLI 或從某個(gè) Java 程序中作為嵌入服務(wù)器啟動(dòng)該服務(wù)器。此外,該服務(wù)器可以作為守護(hù)進(jìn)程運(yùn)行,這樣它將自動(dòng)運(yùn)行,類似于 Windows 環(huán)境中的服務(wù)設(shè)置。
運(yùn)行基本啟動(dòng)腳本
清單 7 顯示了 Tomcat 的基本啟動(dòng)腳本。
清單 7. 運(yùn)行基本啟動(dòng)腳本
cd $CATALINA_HOME/bin./startup.shcd ../logs
檢查 catalina.out 中的錯(cuò)誤!如果您對(duì)此文件使用 cat、vi、more 或 less,可以輸入 shift G 以轉(zhuǎn)到文件底部。或者,您可以輸入類似如下的命令:
tail -50 catalina.out
以檢查文件最后 50 行的錯(cuò)誤。
你還可以通過(guò)修改 Tomcat 代碼或?qū)崿F(xiàn)自己的 LifecycleListener 來(lái)自定義啟動(dòng)過(guò)程,不過(guò)這樣做超出了本教程的范圍。
運(yùn)行啟動(dòng)守護(hù)進(jìn)程
您可以使用各種各樣的選項(xiàng)來(lái)啟動(dòng)該守護(hù)進(jìn)程,例如使用 -user 來(lái)表示非 root 用戶,使用 -pid 來(lái)指定 .pid 文件位置,以及使用 -errfile 和 -outfile 來(lái)分別指定錯(cuò)誤和輸出文件日志。有關(guān)完整的選項(xiàng)列表,可以找到您的 jsvc 進(jìn)程,并輸入 ./jsvc -help。清單 8 顯示了 jsvc 啟動(dòng)腳本的示例。
清單 8. 示例 jsvc 啟動(dòng)腳本
Bash#./jsvc –home /usr/jdk/instances/jdk1.5.0–Dcatalina.home=/opt/apache-tomcat-6.0.16-cp ./bin/bootstrap.jar -outfile ./logs/catalina.out-errfile ./logs/catalina.err org.apache.catalina.startup.Bootstrap
使用 jsvc/bin 目錄下面包括的 Tomcat.sh 腳本也是非常有用的。但是,您將需要編輯變量,以確保諸如路徑等內(nèi)容與您的環(huán)境匹配。
測(cè)試 Tomcat 安裝
基本 Tomcat 安裝將在端口 8080 上安裝一個(gè)內(nèi)部 HTTP 服務(wù)器——Coyote HTTP/1.1。對(duì)于此體系結(jié)構(gòu)和設(shè)置,您不需要單獨(dú)的 Apache HTTP Server。您可以將端口更改為更典型的 Web 服務(wù)器端口,例如 80,只需編輯 $CATALINA_HOME 目錄樹(shù)下的 server.xml 文件即可。您還可以將缺省安全套接字層(Secure Sockets Layer,SSL)端口更改為典型的 SSL 端口,即端口 443。server.xml 文件是 Tomcat 獲取其大多數(shù)核心服務(wù)器配置信息的地方。
您可以通過(guò)訪問(wèn) http://localhost:8080/ 來(lái)驗(yàn)證是否已成功啟動(dòng) Tomcat。您應(yīng)該看到與圖 3 所示類似的啟動(dòng)頁(yè)面。
圖 3. 初始 Tomcat 管理控制臺(tái)歡迎頁(yè)面
設(shè)置 Tomcat Web Application Manager
Tomcat Web Application Manager 提供了許多功能來(lái)幫助管理您的 Web 應(yīng)用程序。它允許您以多種方式部署和“取消部署Web 應(yīng)用程序、列出應(yīng)用程序、重新加載它們,甚至是停止和啟動(dòng)它們。
授予特定用戶訪問(wèn)權(quán)限
要實(shí)現(xiàn) Tomcat Web Application Manager,您必須首先在 tomcat-users.xml 文件中向某個(gè)特定的用戶授予訪問(wèn)權(quán)限。為此,可以使用清單 9 中的代碼。
清單 9. 通過(guò)添加用戶和角色來(lái)授予對(duì) Tomcat Web Application Manager 的訪問(wèn)權(quán)限
vi tomcat-users.xmlAdd these two lines below in between the two <tomcat-users> tags<tomcat-users><role rolename="manager"/><user username="tomcat1" passWord="test1234" roles="manager"/></tomcat-users>
只是以防您感到疑惑,上面的用戶和密碼完全是任意的。您不需要在自己的 UNIX 服務(wù)器上創(chuàng)建具有該密碼的該用戶,并且可以隨心所欲地設(shè)置用戶和密碼。但是,您將使用該信息來(lái)登錄到管理控制臺(tái)中。
為了加強(qiáng)安全性,應(yīng)該僅限該 tomcat-users.xml 文件的所有者有權(quán)訪問(wèn)該文件。為此,您必須將權(quán)限設(shè)置在 700 或以下——例如:
# chmod 600 tomcat-users.xml
重新啟動(dòng) Tomcat 服務(wù)器
要使上述更改生效,您必須重新啟動(dòng) Tomcat 服務(wù)器。為此,可以使用清單 10 中的代碼。
清單 10. 重新啟動(dòng) Tomcat 服務(wù)器
cd $CATALINA_HOME/bin./shutdown.sh./startup.sh ;tail -f ../logs/catalina.out
當(dāng)您使用 tail 命令來(lái)查看 catalina.out 日志文件時(shí),應(yīng)該看到類似如下所示的內(nèi)容:
May 15, 2008 4:08:12 PM org.apache.jk.server.JkMain startINFO: Jk running ID=0 time=0/74 config=nullMay 15, 2008 4:08:12 PM org.apache.catalina.startup.Catalina startINFO: Server startup in 6271 ms
打開(kāi) Tomcat Web Application Manager 控制臺(tái)
返回到 Tomcat 管理控制臺(tái)。單擊左側(cè)導(dǎo)航窗格的 Administration 部分中的 Tomcat Manager 鏈接。當(dāng)成功時(shí),您將看到類似圖 4 所示的窗口。
圖 4. Tomcat Web Application Manager 啟動(dòng)頁(yè)面
Tomcat 還具有一個(gè)狀態(tài)應(yīng)用程序,該應(yīng)用程序顯示 Tomcat 服務(wù)器的狀態(tài),包括 JVM 的內(nèi)存利用情況和線程數(shù)量。您可以通過(guò)單擊 Tomcat Web Application Manger 右上角的 Server Status 來(lái)訪問(wèn)這個(gè)非常有用的工具。
安裝示例應(yīng)用程序
Tomcat 附帶了一個(gè)示例應(yīng)用程序。這當(dāng)然不足以測(cè)試您的特定應(yīng)用程序需要,但它將提供基本 JSP 應(yīng)用程序和基本 Servlet 的功能測(cè)試。
查找 WAR 的位置
當(dāng)您停止 Tomcat Web Application Manager 以部署您的應(yīng)用程序時(shí),您需要知道要搜索哪個(gè)目錄以選擇用于部署的 Web 存檔 (WAR)。可以使用清單 11 中的代碼來(lái)查找此文件。
清單 11. 查找用于部署的 WAR 文件
bash-3.00# cd $CATALINA_HOMEbash-3.00# find . -name *.war./webapps/docs/appdev/sample/sample.war./webapps/sample.war
打開(kāi) Tomcat Web Application Manager 控制臺(tái)以部署服務(wù)器
在 Manager Application 下面,向下滾動(dòng)到 Deploy 部分,如圖 5 所示。
圖 5. 示例應(yīng)用程序部署
在 War file to deploy 下面,只需單擊 Browse。使用您在上面找到的路徑來(lái)選擇該示例應(yīng)用程序 WAR。單擊 Open,然后單擊 Deploy。實(shí)際上,部署該示例應(yīng)用程序也就這么簡(jiǎn)單。
測(cè)試示例應(yīng)用程序
在部署該應(yīng)用程序之后,您可以通過(guò)訪問(wèn) http://localhost:8080/sample/ 來(lái)確定它是否出現(xiàn)。這里,您可以單擊 JSP,然后單擊 Servlet,從而驗(yàn)證這些 Servlet 將出現(xiàn),并且基本的應(yīng)用程序功能存在,如圖 6 所示。該服務(wù)器現(xiàn)在應(yīng)該已經(jīng)為您的應(yīng)用程序準(zhǔn)備就緒了。
圖 6. 示例應(yīng)用程序測(cè)試和驗(yàn)證頁(yè)面
您應(yīng)該知道,這只是驗(yàn)證了 Tomcat 服務(wù)器已正確安裝,并且在按預(yù)期正常工作。要部署您的個(gè)人應(yīng)用程序,您必須遵循有關(guān)在 Tomcat 服務(wù)器目錄下的某些“上下文根下面進(jìn)行打包和安裝的 J2EE 指導(dǎo)原則。
總結(jié)
結(jié)束語(yǔ)
到目前為止,您應(yīng)該能夠在新的 Tomcat 服務(wù)器上順利部署和測(cè)試您的動(dòng)態(tài) J2EE 應(yīng)用程序了!但愿,您已經(jīng)了解了常見(jiàn)的 Web 體系結(jié)構(gòu)、如何在 UNIX 操作系統(tǒng)上安裝和配置 Tomcat 開(kāi)發(fā)服務(wù)器,并學(xué)習(xí)到了一些優(yōu)秀的 UNIX 管理技巧。往后,各種可能性是無(wú)窮無(wú)盡的,還有大量的知識(shí)有待學(xué)習(xí)。
祝您好運(yùn)!
