Linux下Tomcat的安装配置

时间:2021-12-25 19:09:06

  Linux下Tomcat的安装配置

一.下载安装对应的jdk,并配置Java环境。

官网下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html

下载将jdk加压后放到/usr/local目录下:

 [root@master ~]#chmod 755 jdk-6u5-linux-x64.bin

[root@master ~]# ./jdk-6u5-linux-x64.bin

[root@master ~]#mv jdk1.6.0_05 /usr/local

建立/usr/local/下的jdk软连接方便以后版本升级 :

 [root@master ~]# ln -s /usr/local/jdk1.6.0_05/ /usr/local/jdk

 

配置环境变量:

在 /etc/profile 中加入以下内容:

JAVA_HOME=/usr/local/jdk1.6.0_05

JAVA_BIN=/usr/local/jdk1.6.0_05/bin

PATH=$PATH:$JAVA_BIN

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH

保存退出

[root@master ~]source /etc/profile

 

查看java环境变量是否生效

[root@master ~]# java -version

java version "1.6.0_05"

Java(TM) SE Runtime Environment (build 1.6.0_05-b13)

Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode)

测试成功

二.下载安装tomcathttp://tomcat.apache.org/

[root@master ~]# unzip apache-tomcat-6.0.30.zip

[root@master ~]# mv apache-tomcat-6.0.30/ /usr/local/

[root@master ~]cd /usr/local/

[root@master local]# ln -s /usr/local/apache-tomcat-6.0.30/ /usr/local/tomcat

[root@master local]# cd tomcat/bin/

[root@master bin]#ls

[root@master bin]#vim catalina.sh

添加以下内容:

CATALINA_HOME=/usr/local/apache-tomcat-6.0.30/

[root@master local]#chmod +x *.sh

三.启动tomcat服务器

[root@master tomcat]# /usr/local/tomcat /bin/catalina.sh start

Using CATALINA_BASE:   /usr/local/apache-tomcat-6.0.30/

Using CATALINA_HOME:   /usr/local/apache-tomcat-6.0.30/

Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.30//temp

Using JRE_HOME:        /usr/local/jdk1.6.0_05

Using CLASSPATH:       /usr/local/apache-tomcat-6.0.30//bin/bootstrap.jar

[root@master logs]# cd /usr/local/tomcat/logs/

[root@master logs]# tail -f catalina.out

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Jul 4, 2011 11:06:57 AM org.apache.coyote.http11.Http11Protocol pause

INFO: Pausing Coyote HTTP/1.1 on http-8080

Jul 4, 2011 11:06:58 AM org.apache.catalina.core.StandardService stop

INFO: Stopping service Catalina

Jul 4, 2011 11:06:58 AM org.apache.coyote.http11.Http11Protocol destroy

INFO: Stopping Coyote HTTP/1.1 on http-8080

四.在浏览器中输入

http://localhost:8080/(如果不是本机,则输入对应的ip地址)

测试出现tomcat页面则测试成功

ps:需要说明的是tomcat的默认测试页面是放在webapps下面,这个其实是在server.xml文件中配置的,如下所示:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

[root@SOR_SYS apache-tomcat-6.0.30]# ls
LICENSE  NOTICE  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  temp  webapps  work

        1)webapps文件夹主要用于web应用程序部署,比如你可以把你的应用程序包,如war文件拷到该目录下,容器会自动部署
  2)conf文件夹下主要是放置tomcat的服务器的相关配置文件

 

五。添加应用,再次进行测试

在webapps目录下放测试包(注意:webaapps目录下面主要是放应用包的.war在tomcat重启访问后会自动解压

[root@master webapps]# pwd
/usr/local/tomcat/webapps

[root@master webapps]# tar -zxvf moni2.tar.gz

[root@master webapps]# ls
docs  examples  host-manager  manager
  moni2  moni2.tar.gz  ROOT

[root@master webapps]# /usr/local/tomcat/bin/catalina.sh start(重启tomcat)
Using CATALINA_BASE:   /usr/local/apache-tomcat-6.0.30/
Using CATALINA_HOME:   /usr/local/apache-tomcat-6.0.30/
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.30//temp
Using JRE_HOME:        /usr/local/jdk1.6.0_05
Using CLASSPATH:       /usr/local/apache-tomcat-6.0.30//bin/bootstrap.jar

在浏览器中输入如下地址:

http://192.168.55.229:8080/moni2/

Linux下Tomcat的安装配置

 六。修改tomcat的监听端口

[root@master ~]#  cd  /usr/local/tomcat/conf

[root@master ~]# ls

[root@master ~]# vim server.xml

<Server port="8005" shutdown="SHUTDOWN">停止tomcat时的端口】

 <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> 【tomcat默认的监听端口是8080,现在改成8081】

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />apache+tomcat模式时访问tomcat的端口】

现在重启tomcat。访问http://192.168.55.229:8081/moni2/注意:这时就需要修改端口了,嘿嘿。。。】

当修改出现权限问题时

非root用户,修改tomcat启动端口为80,启动时报错:

2010-07-17 13:21:42 org.apache.tomcat.util.digester.SetPropertiesRule begin 
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property. 
2010-07-17 13:21:42  org.apache.catalina.core.AprLifecycleListener init 
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/jdk1.5.0_16/jre/lib/i386/client:/usr/jdk1.5.0_16/jre/lib/i386:/usr/jdk1.5.0_16/jre/../lib/i386 
2010-07-17 13:21:42  org.apache.coyote.http11.Http11Protocol init 
严重: Error initializing endpoint 
java.net.BindException: Permission denied:80 
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:502) 
        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) 
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1058) 
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:677) 
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795) 
        at org.apache.catalina.startup.Catalina.load(Catalina.java:530) 
        at org.apache.catalina.startup.Catalina.load(Catalina.java:550) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
        at java.lang.reflect.Method.invoke(Method.java:585) 
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260) 
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412) 
2010-07-17 13:21:43 org.apache.catalina.startup.Catalina load

 

上面可以看到,非root用户其实没有绑定80端口的权限。在Linux下低于1024的端口是root专用,而Tomcat安装后默认使用用户tomcat启动的,所以将端口改为80后启动,会产生错误:java.net.BindException: Permission denied:80

解决方法是:

第一步,重将Tomcat的端口(server.xml)由80改回8080。

第二步,通过Iptables端口实现80到8080的转发,命令为:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

用root用户直接去执行就可以了!

这样,用户访问80端口和8080端口其实都到了8080端口。