首页 > 其他 > 详细

配置Tomcat

时间:2020-12-11 09:26:08      阅读:26      评论:0      收藏:0      [点我收藏+]

配置Tomcat

目前有很多网站是用Java编写的,所以解析Java程序就必须有相关的软件来完成,Tomcat就是其中之一。Tomcat是Apache软件基金会( Apache Software Foundation )的Jakarta项目中的一个核心项目,由Apache、Sun 和其他一-些公司及个人共同开发而成。Tomcat技 术先进、性能稳定而且免费,因而深受Java爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试Java程序的首选。对于初学者来说,在一台机器上配置好Apache服务器之后,可利用它响应对HTML页面的访问请求。实际上,Tomcat部分 是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它是作为一个独立的进程运行的。

 

安装Tomcat

Tomcat的安装分为安装JDK和安装Tomcat两个步骤。JDK(Java Development Kit)是Sun Microsystems针对Java开发的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK是整个Java的核心,它包括了Java运行环境、Java 工具和Java基础的类库。所以要想运行Java程序必须要有JDK的支持,而安装Tomcat的前提也是安装好JDK。

 

安装JDK

官网下载:https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

把JDK的包放在/usr/local/src下。

 

# cd /usr/local/src/

# tar zxvf jdk-8u271-linux-x64.tar.gz

# mv jdk1.8.0_271/ /usr/local/jdk1.8

然后设置环境变量,操作方法如下:

 

# vi /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 /etc/profile

# java -version

技术分享图片

在这一步也许你的显示和上述不一样,这可能是因为系统调用了rpm的openjdk,请按照如下方法检测:

# which java

如果结果为/usr/bin/java则说明这是rpm的JDK,而且执行java -version时会有openjdk字样。其实我们也可以直接使用openjdk做后续实验,但为了和阿铭的实验结果保持一致,你需要做-一个临时处理:

 

# mv /usr/bin/java /usr/bin/java_ bak

# source /etc/profile

再执行一次java -version,显示结果就正常了。

安装Tomcat

前面所作的工作都是在位安装Tomcat做准备,现在才是安装Tomcat。首先下载软件包。

# cd /usr/local/src

# tar zxvf apache-tomcat-8.5.60.tar.gz

# mv apache-tomcat-8.5.60 /usr/local/tomcat

因为是二进制包,所以免去了编译过程,启动Tomcat,命令如下:

# /usr/local/tomcat/bin/startup.sh

技术分享图片

查看是否启动成功,命令如下:

# ps aux |grep tomcat //看是否有java相关进程,也可以查看监听端口

# netstat -lntp | grep java //正常有三个端口8080 8005 8009,其中8080为提供Web服务的端口,8005为管理端口,8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到

 

若想开机时启动,需要把启动命令放到/etc/rc.d/rc.local文件里。如下:

# echo "/usr/local/tomcat/bin/startup.sh" >> /etc/rc.d/rc.local

# chmod a+x /etc/rc.d/rc.local

 

然后再浏览器地址栏输入http://192.168.194.128:8080/

技术分享图片

配置Tomcat

Tomcat的安装过程非常简单,但是我们还需要学会任何配置Tomcat。在生产环境中关于Tomcat的配置其实并不多,接下来阿明会介绍几个常用的配置。

# vi /usr/local/tomcat/conf/server.xml //Connector port="8080"改成Connector port="80"

技术分享图片

改成

技术分享图片

:q

# /usr/local/tomcat/bin/shutdown.sh

技术分享图片

# /usr/local/tomcat/bin/startup.sh

技术分享图片

Tomcat的关闭和启动有点特殊,需要使用它自带的脚本实现。其实在生产环境中,Tomcat会使用8080端口,而80端口是六个Nginx的。也就是说要想访问Tomcat,需要使用Nginx代理。关于如何代理在lnmp环境搭建介绍过。

 

Tomcat的虚拟主机

在之前介绍httpd或者Nginx的时候,阿铭都曾提到过虚拟主机的概念,在Tomcat中也有这一说。先来打开配置文件/ust/local/tomcat/conf/server.xml查看一下它的结构,其中<!--和-->之间的内容为注释掉的,可以不用关注。去除注释的内容后,剩下如下内容:

技术分享图片

技术分享图片

其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,appBase定义应用的目录。Java的应用通常是一个jar的压缩包,Java的应用通常是一个jar的压缩包,将jar的压缩包放到appBase目录下面即可。刚刚访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里:

# ls /usr/local/tomcat/webapps/ROOT

技术分享图片

# curl localhost:8080/tomcat.svg -I

技术分享图片

阿晓并没有修改默认监听的8080端口为80,所以curl访问的时候依然是8080端口。在appBase( /usr/local/tomcat/webapps)目录下面有很多子目录,每-一个子目录都可以被访问,你可以把自定义的应用放到webapps目录里(假设应用名字为aming, aming为- 一个目录 ),然后可以通http://ip/aming/来访问这个应用。如果直接访问IP,后面不加二级目录,则默认会访问ROOT目录下面的文件,加上二级目录会访问二级目录下面的文件。

下面阿晓再增加一个虚拟主机,并定义域名,编辑server.xml,</Host>下一行插入新的

# vi /usr/local/tomcat/conf/server.xml

<Host>,内容如下:

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

unpackWARs="false" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

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

</Host>

技术分享图片

# mkdir /data/tomcatweb

# echo "Tomcat test page." > /data/tomcatweb/1.html

# /usr/local/tomcat/bin/shutdown.sh

技术分享图片

# /usr/local/tomcat/bin/startup.sh

技术分享图片

# curl -x127.0.0.1:8080 www.hanxiao.cn/1.html

技术分享图片

 

测试Tomcat解析JSP

以上章节所演示的操作,仅仅是把Tomcat作为一个普通的Web server,其实Tomcat主要是用来解析JSP页面。下面来创建一个JSP的测试页面,如下所示:

# vi /data/tomcatweb/111.jsp

<html><body><center>

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

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

技术分享图片

# curl -x127.0.0.1:8080 www.hanxiao.cn/111.jsp

技术分享图片

可以看到,中间那行代码被解析成当前系统时间了。另外你也可以在你的虚拟机上绑定hosts,用浏览器来测试。

技术分享图片

技术分享图片

 

Tomcat日志

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

# cd /usr/local/tomcat/logs/

# ls

技术分享图片

其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。其中,catalina.2017-04-03.log 和catalina.out内容相同,前者会每天生成一个新的日志。host-manager 和manager为管理相关的日志,其中host-manager 为虚拟主机的管理日志。Localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。访问日志默认不会生成,需要在server.xml中配置一下。具体方法是在对应虚拟主机的<Host></Host>里面加入下面的配置(假如域名为www.hanxiao.cn ):

# vi /usr/local/tomcat/conf/server.xml //在<Host></Host>里面加入如下配置

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

prefix="www.hanxiao.cn_access_log" suffix=".txt"

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

技术分享图片

Tomcat连接MySQL

发现问题: -bash:mysql:未找到命令:

技术分享图片

解决方案:

一:

# vi /etc/profile //在最后加入export PATH=$PATH:/usr/local/mysql/bin

技术分享图片

#echo $PATH

技术分享图片

source /etc/profile

 

二:

首先需要找到mysql命令或者mysqladmin命令的完整路径比如我的mysql路径是:/usr/local/mysql/bin/mysql

我们可以执行如下命令:

# ln -s /usr/local/mysql/bin/mysql /usr/bin/

 

总结:问题所在是mysql的路径,方案一是配置/etc/profile文件添加mysql路径,方案二则是创建一条软连接。

 

解决了上述问题我们先要配置mysql,创建实验用的库、表以及用户:

# mysql -uroot -p‘123456‘ //

忘记密码操作:

# mysql

mysql>set password for root@localhost=password(‘123456‘); //123456为重置的密码。

mysql> create database java_test;

mysql> use java_test

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

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

mysql> insert into hxlinux values (1,‘aaa‘);

mysql> insert into hxlinux values (2,‘bbb‘);

mysql> insert into hxlinux values (3,‘ccc‘);

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

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

# mysql -ujava -phxlinux -h127.0.0.1

技术分享图片

正常进入mysql,说明刚刚创建的java用户没问题。接着去配置Tomcat相关的配置文件:

# vi /usr/local/tomcat/conf/context.xml //在</Context>上面增加以下内容

<Resource name="jdbc/mytest"

auth="Container"

type="javax.sql.DataSource"

maxActive="100" maxIdle="30" maxWait="10000"

username="java" password="hxlinux"

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、端口以及库名。保存该文件后,还需要更改另外一个配置文件:

# vi /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml //</web-app>上面增加

<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>技术分享图片

其实每一个应用(上文提到的webapps/ROOT、webapps/hanxiao等)目录下都应该有一个WEB-INF目录,它里面会有对应的配置文件,比如web.xml就是用来定义JDBC相关资源的,其中res-ref-name和前面定义的Resource name保持一致。既然选择了用webapps/ROOT作为实验对象,就需要在ROOT目录下面创建测试文件(用浏览器访问的文件):

#vi /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 hxlinux";

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:

# /usr/local/tomcat/bin/shutdown.sh

# /usr/local/tomcat/bin/startup.sh

 

 

用mysql目录查询得到结果

# mysql -ujava -phxlinux -h127.0.0.1 java_test -e "select * from hxlinux"

技术分享图片

 

使用浏览器访问:

技术分享图片

 

 

浏览器访问已解决。

 

用浏览器访问出现404的情况:

这种情况应是下列两个配置文件出现错误检查修正即可。

# vi /usr/local/tomcat/conf/context.xml

# vi /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml

 

用浏览器浏览出现500的情况:

技术分享图片

报错内容是缺少jdbc。

我们下载5.1.7的mysql-connector-java包。

https://downloads.mysql.com/archives/c-j/

技术分享图片

上传到虚拟机解压:

技术分享图片

技术分享图片

将这个bin.jar文件拷贝到tomcat下lib目录。

技术分享图片

重启tomcat问题就解决了

# /usr/local/tomcat/bin/shutdown.sh

# /usr/local/tomcat/bin/startup.sh

技术分享图片

配置Tomcat

原文:https://www.cnblogs.com/x1499872666/p/14118532.html

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