首页 > 其他 > 详细

配置Tomcat

时间:2020-12-17 11:49:21      阅读:17      评论:0      收藏:0      [点我收藏+]

第19章 配置Tomcat

19.1 安装Tomcat

Tomcat的安装分为安装JDK和安装Tomcat两个步骤,JDK是整个java的核心,它包括了java的运行环境,java工具和java基础的类库。想要运行Java程序必须要有JDK的支持,安装Tomcat的前提也是安装好JDK。

19.1.1 安装JDK

将jdk包上传到/usr/local/src/目录下然后解压。

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# tar -zxf jdk-8u131-linux-x64.tar.gz

[root@localhost src]# mv jdk1.8.0_131 /usr/local/jdk1.8

然后设置环境变量,编辑配置文件vim /etc/profile在后面加入以下几行:

[root@localhost src]# vim /etc/profile

//在后面加入以下几行

JAVA_HOME=/usr/local/jdk1.8/

JAVA_BIN=/usr/local/jdk1.8/bin

JRE_HOME=/usr/local/jdk1.8/jre

PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin

CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar

执行source命令使其生效,并检查设置是否正确,显示如下内容说明配置正确:

[root@localhost src]# source /etc/profile

[root@localhost src]# java -version

java version "1.8.0_131"

Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

 

19.1.2 安装Tomcat

将tomcat包上传到/usr/local/src/目录下然后解压。

[root@localhost src]# tar -zxf apache-tomcat-8.5.60.tar.gz

[root@localhost src]# mv apache-tomcat-8.5.60 /usr/local/tomcat

二进制包不需要编译,启动tomcat

[root@localhost src]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

Tomcat started.

查看是否启动成功:

[root@localhost src]# netstat -ntpl |grep java

tcp6       0      0 :::8080                 :::*                    LISTEN      29565/java         

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      29565/java

设置开机启动

[root@localhost src]# echo "/usr/local/tomcat/bin/startup.sh" >> /etc/rc.d/rc.local

[root@localhost src]# chmod a+x /etc/rc.d/rc.local

在浏览器中输入虚拟机ip可以看到tomcat的默认界面

 

19.2 配置Tomcat

19.2.1 配置Tomcat服务的访问端口

将tomcat的默认启动端口修改为80需要修改server.xml文件,命令如下:

编辑配置文件vim /usr/local/tomcat/conf/server.xml,搜索8080,修改为port=“80”:

    -->

    <Connector port="80" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

保存文件后重启Tomcat

[root@localhost src]# /usr/local/tomcat/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

[root@localhost src]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

Tomcat started.

 

19.2.2 Tomcat的虚拟主机

查看配置文件/usr/local/tomcat/conf/server.xml去掉注释后剩下如下内容:

<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />

  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

 

  <Service name="Catalina">

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

    <Connector protocol="AJP/1.3"

               port="8009"

               redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

          <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

 

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="localhost_access_log" suffix=".txt"

               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>

    </Engine>

  </Service>

</Server>

其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,appbase定义应用的目录,java的应用通常是jar的压缩包,将jar的压缩包放到appBase目录下即可

[root@localhost src]# ls /usr/local/tomcat/webapps/ROOT/

asf-logo-wide.svg  bg-middle.png  bg-upper.png  index.jsp          tomcat.css  WEB-INF

bg-button.png      bg-nav.png     favicon.ico   RELEASE-NOTES.txt  tomcat.svg

其中index.jsp就是Tomcat的默认界面,使用curl访问tomcat.css:

[root@localhost src]# curl localhost:8080/tomcat.css -I

HTTP/1.1 200

Accept-Ranges: bytes

ETag: W/"5542-1605202612000"

Last-Modified: Thu, 12 Nov 2020 17:36:52 GMT

Content-Type: text/css

Content-Length: 5542

Date: Tue, 08 Dec 2020 01:12:39 GMT

在appBase(/usr/local/tomcat/webapps)目录下面有很多子目录,每个子目录都能被访问,把自定义的应用放到webapps里,然后可以通过http://ip/应用名/来访问这个应用。如果直接访问IP,后面不加二级目录则默认会访问ROOT目录下的文件,加上二级目录会访问二级目录下的文件。

 

新增一个虚拟主机并定义域名,编辑文件/usr/local/tomcat/conf/server.xml,在</Host>下一行插入新的<Host>,内容如下:

     <Host name="www.123.cn" appBase="/data/tomcatweb"

           unpackWARs="false" autoDeploy="ture"

           xmlValidation="flase" xmlNamespaceAware="flase">

           <Context path="" docBase="/data/tomcatweb/" debug="0" reloadable="true" crossContext="ture"/>

      </Host>

docbase参数用来定义网站的文件存放路径,如果不定义默认是在appBase/ROOT下面的。appBase和docBase可以一样。创建目录和测试文件并测试:

[root@localhost src]# mkdir /data/tomcatweb

[root@localhost src]# echo "Tomcat test page." > /data/tomcatweb/1.html

重启服务

[root@localhost src]# /usr/local/tomcat/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

[root@localhost src]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

Tomcat started.

访问刚才创建的1.html

[root@localhost src]# curl -x127.0.0.1:8080 www.123.cn/1.html

Tomcat test page.

 

19.3 测试Tomcat解析JSP

Tomcat主要用来解析JSP页面,创建一个jsp的测试页面:

[root@localhost ~]# vim /data/tomcatweb/111.jsp

<html><body><center>

    Now time is: <%=new java.util.Date()%>

</center></body></html>

使用curl命令测试:

[root@localhost ~]# curl -x127.0.0.1:8080 www.123.cn/111.jsp

<html><body><center>

    Now time is: Tue Dec 08 16:10:02 CST 2020

</center></body></html

中间的那行代码被解析成当前系统的时间了。

 

19.4 Tomcat日志

Tomcat的日志目录为/usr/local/tomcat/logs,主要有四大类日志:

[root@localhost ~]# cd /usr/local/tomcat/logs/

[root@localhost logs]# ls

catalina.2020-12-08.log  host-manager.2020-12-08.log  localhost_access_log.2020-12-08.txt

catalina.out             localhost.2020-12-08.log     manager.2020-12-08.log

其中,catalina开头的日志为Tomcat的综合日志,他记录了Tomcat服务相关信息和错误日志。catalina.2020-12-08.log和catalina.out内容相同,前者会每天生成一个新的日志。host-manager和manager为管理相关的日志,host-manager为虚拟主机的管理日志。localhost和localhost_access为虚拟主机相关日志,其中带access字样的为日志为访问日志,不带access字样的为默认虚拟主机的错误日志。访问日志默认不会生成,需要在server.xml中配置一下。编辑文件/usr/local/tomcat/conf/server.xml,在对应虚拟主机的<Host></Host>里面加入下面的配置(假如域名为localhost):

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="localhost_access_log" suffix=".txt"

               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>

prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个“localhost.日期.log”日志,错误日志会统一记录到catalina.out中。出现问题时应该首先想到去查看它。

 

19.5 Tomcat连接MySQL

配置mysql创建实验用的库,表,以及用户:

先安装mysql命令,然后把mysql-connector-java-5.1.7-bin.jar文件放进tomcat/lib目录下,做一遍lamp初始化和配置mysql。使用绝对路径进入数据库

[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -p000000

Warning: Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.6.43 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type help; or \h for help. Type \c to clear the current input statement.

 

mysql> create database java_test;

Query OK, 1 row affected (0.00 sec)

 

mysql> use java_test

Database changed

mysql> grant all on java_test.* to java@127.0.0.1 identified by ljllinux;

Query OK, 0 rows affected (0.00 sec)

 

mysql> create table ljllinux (`id` int(4), `name` char(40));

Query OK, 0 rows affected (0.00 sec)

 

mysql> insert into ljllinux values (1,abc);

Query OK, 1 row affected (0.00 sec)

 

  sql> insert into ljllinux values (2,aaa);

Query OK, 1 row affected (0.00 sec)

 

mysql> insert into ljllinux values (3,ccc);

Query OK, 1 row affected (0.00 sec)

 

mysql> Ctrl-C -- exit!

Aborted

创建完表以及用户后退出mysql并验证用户是否可用:

[root@localhost ~]# mysql -ujava -pljllinux -h127.0.0.1

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.6.43 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

 

Type help; or \h for help. Type \c to clear the current input statement.

 

MySQL [(none)]> Ctrl-C -- exit!

Aborted

正常进入mysql说明刚刚创建的java用户没有问题,接着配置tomcat相关的配置文件,在</Context>上面添加如下内容:

[root@localhost ~]# vim /usr/local/tomcat/conf/context.xml

<Resource name="jdbc/mytest"

    auth="Container"

    type="javax.sql.DataSource"

    maxActive="100" maxIdle="30" maxwait="10000"

    username="java" password="ljllinux"

    driverclassName="com.mysql.jdbc.Driver"

    url="jdbc:mysql://127.0.0.1:3306/java_test">

</Resource>

name定义为jdbc/mytest,mytest可以自定义。username为mysql的用户,password为密码。url定义mysql的ip,端口以及库名。保存该文件后更改另一个配置文件,在</web-app>上面添加如下内容:

[root@localhost ~]# vim /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml

<resource-ref>

    <description>DB Connection</description>

    <res-ref-name>jdbc/mytest</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

</resource-ref>

其中res-ref-name跟前边定义的Resource name保持一致。在ROOT目录下创建测试JSP文件(用浏览器访问的文件):

[root@localhost ~]# vim /usr/local/tomcat/webapps/ROOT/t.jsp

<%@page import="java.sql.*"%>

<%@page import="javax.sql.DataSource"%>

<%@page import="javax.naming.*"%>

 

<%

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx

.lookup("java:comp/env/jdbc/mytest");

Connection conn = ds.getConnection();

Statement state = conn.createStatement();

String sql = "select * from ljllinux";

ResultSet rs = state.executeQuery(sql);

 

while (rs.next()) {

    out.println(rs.getString("id") +"<tr>");

    out.println(rs.getString("name") +"<tr><br>");

}

 

rs.close();

state.close();

conn.close();

%>

这个脚本会去连接mysql,并查询一个库,表的数据。保存后重启Tomcat:

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

[root@localhost ~]# /usr/local/tomcat/bin/startup.sh 

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk1.8

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

Using CATALINA_OPTS:  

Tomcat started.

然后在浏览器里访问http://192.168.150.40:8080/t.jsp,它会查询java_test库的ljllinux表并列出具体数据来:

 

这和直接用mysql命令行查询得到的结果是一致的:

[root@localhost ~]# mysql -ujava -pljllinux -h127.0.0.1 java_test -e "select * from ljllinux"

+------+------+

| id   | name |

+------+------+

|    1 | abc  |

|    2 | aaa  |

|    3 | ccc  |

+------+------+

 

 

 

 

配置Tomcat

原文:https://www.cnblogs.com/lijinli/p/14147831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!