系統環境: Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64位
Tomcat下載
從官方網站 http://tomcat.apache.org/下載你需要的Tomcat版本,目前Tomcat主要版本有Tomcat 6.0、Tomcat 7.0、Tomcat 8.0三個版本,下面我們以6.0(6.0.39)版本為例, 下載URL地址:http://tomcat.apache.org/download-60.cgi ,如果你需要下載Tomcat 6.0下的其它版本,點擊鏈接地址“Archives“ http://archive.apache.org/dist/tomcat/tomcat-6/ 即可查看到你需要的版本。
Tomcat安裝
Step 1:安裝配置JDK
關於JDK的安裝配置細節可以參考我以前的博客lRedhat Linux安裝JDK 1.7,JDK最好選擇合適的版本,這里我為了方便省事,就安裝了JDK1.7.
1: [root@DB-Server tmp]# chmod +x jdk-7u25-linux-x64.rpm
2:
3: [root@DB-Server tmp]# rpm -ivh jdk-7u25-linux-x64.rpm
4: Preparing... ########################################### [100%]
5: 1:jdk ########################################### [100%]
6: Unpacking JAR files...
7: rt.jar...
8: jsse.jar...
9: charsets.jar...
10: tools.jar...
11: localedata.jar...
12: [root@DB-Server tmp]# cd /usr/java/
配置環境變量,在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_25
export CLASSPATH=/usr/java/jdk1.7.0_25/lib
export PATH=$JAVA_HOME/bin:$PATH
1: [root@DB-Server jdk1.7.0_25]# vi /etc/profile
2: [root@DB-Server jdk1.7.0_25]# source /etc/profile --生效修改配置信息
3:
4: [root@DB-Server jdk1.7.0_25]# echo $JAVA_HOME
5: /usr/java/jdk1.7.0_25
6: [root@DB-Server jdk1.7.0_25]# echo $CLASSPATH
7: /usr/java/jdk1.7.0_25/lib
8: [root@DB-Server jdk1.7.0_25]# java -version
9: java version "1.7.0_25"
10: Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
11: Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
12: [root@DB-Server jdk1.7.0_25]#
Step 2:安裝Tomcat
1: [root@DB-Server tmp]#tar zxvf apach-tomcat-6.0.16.tar.gz
2:
3: [root@DB-Server tmp]#mkdir /usr/local/tomcat
4:
5: [root@DB-Server tmp]# mv apache-tomcat-6.0.39 /usr/local/ tomcat
6:
7:
8: [root@DB-Server tomcat]# vi /etc/profile
9:
10: export TOMCAT_HOME=/usr/local/tomcat
11:
12:
13: [root@DB-Server tomcat]# source /etc/profile
14: [root@DB-Server tomcat]# echo $TOMCAT_HOME
15: /usr/local/tomcat
16:
17:
18: [root@DB-Server bin]# pwd
19: /usr/local/tomcat/apache-tomcat-6.0.39/bin
20: [root@DB-Server bin]# ./startup.sh
21: Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-6.0.39
22: Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-6.0.39
23: Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.39/temp
24: Using JRE_HOME: /usr/java/jdk1.7.0_25
25: Using CLASSPATH: /usr/local/tomcat/apache-tomcat-6.0.39/bin/bootstrap.jar
如果需要指定Tomcat在某個賬號下運行或管理,則可以通過下面腳本:例如,我要創建一個tomcat的賬號
1: [root@DB-Server ~]# groupadd tomcat
2:
3: [root@DB-Server ~]# useradd -g tomcat -d /home/tomcat -u 502 tomcat
4:
5: Creating mailbox file: File exists
6:
7: [root@DB-Server tomcat]# chown -Rf tomcat.tomcat /usr/local/tomcat/
8:
9: [root@DB-Server tomcat]#passwd tomcat
10:
11: Changing password for user tomcat.
12:
13: New UNIX password:
14:
15: Retype new UNIX password:
16:
17: passwd: all authentication tokens updated successfully.
在瀏覽器里面輸入http://localhost:8080/ (默認端口為8080,可以修改該端口號) 驗證Tomcat是否安裝成功,如果安裝成功,則會看到Tomcat的index.jsp並證明Tomcat啟動成功了
Tomcat配置
關於Tomcat的目錄結構,可以參考下面簡單的描述,
[root@DB-Server apache-tomcat-6.0.39]# ls
bin lib logs RELEASE-NOTES temp work
conf LICENSE NOTICE RUNNING.txt webapps
主目錄下面有bin、lib等目錄
bin 存放Tomcat啟動、停止服務程序以及一些其他腳本程序
lib 存放Tomcat運行需要的jar包
log 存放Tomcat運行的相關日志文件
conf 存放Tomcat配置文件。例如server.xml 、 web.xml等
temp 存放Tomcat運行的臨時文件。
webapps Web應用的發布目錄,默認情況下把Web應用文件放於此目錄。
work Tomcat的工作目錄,默認情況下把編譯JSP文件生成的servlet類文件放於此目錄下
1:啟動Tomcat服務
1: [root@DB-Server bin]# ./startup.sh
2:
3: Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-6.0.39
4:
5: Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-6.0.39
6:
7: Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.39/temp
8:
9: Using JRE_HOME: /usr/java/jdk1.7.0_25
10:
11: Using CLASSPATH: /usr/local/tomcat/apache-tomcat-6.0.39/bin/bootstrap.jar
2:關閉Tomcat服務
1: [root@DB-Server bin]# ./shutdown.sh
2:
3: Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-6.0.39
4:
5: Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-6.0.39
6:
7: Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.39/temp
8:
9: Using JRE_HOME: /usr/java/jdk1.7.0_25
10:
11: Using CLASSPATH: /usr/local/tomcat/apache-tomcat-6.0.39/bin/bootstrap.jar
12:
13: [root@DB-Server bin]#
3:查看Tomcat版本
有時候,如果當你接手去管理Tomcat, 可能你要了解一下Tomcat的版本信息,以及配置,那么怎么查看呢,去Tomcat的主目錄下的bin目錄下,執行version.sh,你就能查看到很多詳細信息。
1: [root@DB-Server bin]# ./version.sh
2:
3: Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-6.0.39
4:
5: Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-6.0.39
6:
7: Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.39/temp
8:
9: Using JRE_HOME: /usr/java/jdk1.7.0_25
10:
11: Using CLASSPATH: /usr/local/tomcat/apache-tomcat-6.0.39/bin/bootstrap.jar
12:
13: Server version: Apache Tomcat/6.0.39
14:
15: Server built: Jan 27 2014 10:40:33
16:
17: Server number: 6.0.39.0
18:
19: OS Name: Linux
20:
21: OS Version: 2.6.18-274.el5
22:
23: Architecture: amd64
24:
25: JVM Version: 1.7.0_25-b15
26:
27: JVM Vendor: Oracle Corporation
28:
4:設置管理密碼
如果你要進入Tomcat的管理頁面:http://localhost:8080/manager/html ,這時會彈出下面認證界面,需要你輸入用戶名和密碼,如果你沒有配置過或者你忘了用戶名、密碼,那么應該找那個配置文件呢?其實你都可以通過配置文件tomcat-users.xml 來解決
1: [root@DB-Server conf]# more tomcat-users.xml
2:
3: xml version='1.0' encoding='utf-8'?>
4:
5: --
6:
7: Licensed to the Apache Software Foundation (ASF) under one or more
8:
9: contributor license agreements. See the NOTICE file distributed with
10:
11: this work for additional information regarding copyright ownership.
12:
13: The ASF licenses this file to You under the Apache License, Version 2.0
14:
15: (the "License"); you may not use this file except in compliance with
16:
17: the License. You may obtain a copy of the License at
18:
19: http://www.apache.org/licenses/LICENSE-2.0
20:
21: Unless required by applicable law or agreed to in writing, software
22:
23: distributed under the License is distributed on an "AS IS" BASIS,
24:
25: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26:
27: See the License for the specific language governing permissions and
28:
29: limitations under the License.
30:
31: >
32:
33: omcat-users>
34:
35: --
36:
37: NOTE: By default, no user is included in the "manager-gui" role required
38:
39: to operate the "/manager/html" web application. If you wish to use this app,
40:
41: you must define such a user - the username and password are arbitrary.
42:
43: >
44:
45: --
46:
47: NOTE: The sample user and role entries below are wrapped in a comment
48:
49: and thus are ignored when reading this file. Do not forget to remove
50:
51: <!.. ..> that surrounds them.
52:
53: >
54:
55: --
56:
57: <role rolename="tomcat"/>
58:
59: <role rolename="role1"/>
60:
61: <user username="tomcat" password="tomcat" roles="tomcat"/>
62:
63: <user username="both" password="tomcat" roles="tomcat,role1"/>
64:
65: <user username="role1" password="tomcat" roles="role1"/>
66:
67: >
68:
69: tomcat-users>
70:
修改配置文件前,要養成首先備份一份配置文件的習慣,以防需要回滾到最初設置時,忘了自己修改過哪些配置。一般建議源文件+日期+bak
[root@DB-Server conf]# cp tomcat-users.xml tomcat-users.xml.20130308.bak
[root@DB-Server conf]# vi tomcat-users.xml
<role rolename="admin" />
<role rolename="manager" />
<user username="admin" password="Qwe!23" roles="admin,manager" />
修改了配置信息后,一般需要重新啟動一下Tomcat才能生效,否則依然進入不了管理界面
Tomcat 7 下與Tomcat 6 稍有不同,如下所示:
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="xxxx" roles="admin-gui , manager-gui "/>
5:修改Tomcat的默認端口
有時候由於特性情況,需要修改Tomcat的默認端口8080,例如端口號被其它應用程序占用了等,這時你需要修改server.xml,在里面
找到如下圖所示地方,修改為port的值。注意:修改后需要重啟Tomcat服務。
6:修改Tomcat使用的JDK
首先我們先安裝JDK1.6,如下所示
1: [root@DB-Server tmp]# chmod +x jdk-6u31-linux-x64-rpm.bin
2: [root@DB-Server tmp]# ./jdk-6u31-linux-x64-rpm.bin
3: Unpacking...
4: Checksumming...
5: Extracting...
6: UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
7: inflating: jdk-6u31-linux-amd64.rpm
8: inflating: sun-javadb-common-10.6.2-1.1.i386.rpm
9: inflating: sun-javadb-core-10.6.2-1.1.i386.rpm
10: inflating: sun-javadb-client-10.6.2-1.1.i386.rpm
11: inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm
12: inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm
13: inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm
14: Preparing... ########################################### [100%]
15: 1:jdk ########################################### [100%]
16: Unpacking JAR files...
17: rt.jar...
18: jsse.jar...
19: charsets.jar...
20: tools.jar...
21: localedata.jar...
22: plugin.jar...
23: javaws.jar...
24: deploy.jar...
25: Installing JavaDB
26: Preparing... ########################################### [100%]
27: 1:sun-javadb-common ########################################### [ 17%]
28: 2:sun-javadb-core ########################################### [ 33%]
29: 3:sun-javadb-client ########################################### [ 50%]
30: 4:sun-javadb-demo ########################################### [ 67%]
31: 5:sun-javadb-docs ########################################### [ 83%]
32: 6:sun-javadb-javadoc ########################################### [100%]
33: Java(TM) SE Development Kit 6 successfully installed.
34: Product Registration is FREE and includes many benefits:
35: * Notification of new versions, patches, and updates
36: * Special offers on Oracle products, services and training
37: * Access to early releases and documentation
38: Product and system data will be collected. If your configuration
39: supports a browser, the JDK Product Registration form will
40: be presented. If you do not register, none of this information
41: will be saved. You may also register your JDK later by
42: opening the register.html file (located in the JDK installation
43: directory) in a browser.
44: For more information on what data Registration collects and
45: how it is managed and used, see:
46: http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html
47: Press Enter to continue.....
48:
49: Done.
修改catalina.sh,增加export JAVA_HOME=/usr/java/jdk1.6.0_31即可。如下所示,似乎不用重啟,Tomcat使用的JDK就改為了jdk1.6
[root@DB-Server bin]# ./shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-6.0.39
Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-6.0.39
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.39/temp
Using JRE_HOME: /usr/java/jdk1.6.0_31
Using CLASSPATH: /usr/local/tomcat/apache-tomcat-6.0.39/bin/bootstrap.jar
[root@DB-Server bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-6.0.39
Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-6.0.39
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.39/temp
Using JRE_HOME: /usr/java/jdk1.6.0_31
Using CLASSPATH: /usr/local/tomcat/apache-tomcat-6.0.39/bin/bootstrap.jar
[root@DB-Server bin]#
另外,似乎網上也有文章介紹,在文件setclasspath.sh下加入export JAVA_HOME=/usr/java/jdk1.6.0_31 設置即可,那種比較合理,目前不得而知。
7:Tomcat端口被占用分析
有時候明明Tomcat配置OK,Tomcat服務啟動正常,但是打開頁面的時候出錯。這時可能是Tomat端口被占用了,你可以查看一下那些程序占用了Tomcat的端口
[root@DB-Server bin]# netstat -an | grep 8080
[root@DB-Server bin]# netstat -apn | grep 8080
一般你也會在catalina.out日志里面找到”SEVERE: Error initializing endpoint java.net.BindException: Permission denied<null>:8080“之類的錯誤。
1: [root@DB-Server logs]$ more catalina.out
2: Mar 4, 2014 4:22:14 PM org.apache.catalina.core.AprLifecycleListener init
3: INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the ja
4: va.library.path: /usr/java/jdk1.6.0_31/jre/lib/amd64/server:/usr/java/jdk1.6.0_31/jre/lib/amd64:/usr/java/jdk1.6.0_31/jre/../lib/amd
5: 64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
6: Mar 4, 2014 4:22:15 PM org.apache.coyote.http11.Http11Protocol init
7: SEVERE: Error initializing endpoint
8: java.net.BindException: Permission denied<null>:8080
9: at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:502)
10: at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
11: at org.apache.catalina.connector.Connector.initialize(Connector.java:1058)
12: at org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
13: at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
14: at org.apache.catalina.startup.Catalina.load(Catalina.java:530)
15: at org.apache.catalina.startup.Catalina.load(Catalina.java:550)
16: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
17: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
18: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
19: at java.lang.reflect.Method.invoke(Method.java:597)
20: at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
21: at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
22: Mar 4, 2014 4:22:15 PM org.apache.catalina.startup.Catalina load
23: SEVERE: Catalina.start
這時要么修改Tomcat的默認端口號,要么修改其它應用程序的端口號。
Tomcat卸載
Tomcat的卸載非常簡單,只需要將Tomcat的CATALINA_BASE目錄刪除,然后刪除一些環境變量即可。
[root@DB-Server ~]# rm -rf /usr/local/tomcat/