Tomcat部署环境
Posted cslzzl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat部署环境相关的知识,希望对你有一定的参考价值。
Tomcat部署环境
作者:compy
日期:20170601
安装软件包版本
mysql-Connector-Java: mysql-connector-java-5.1.36
Tomcat: apache-tomcat-8.0.26
JDK: jdk-8u60-linux-x64
MySQL: mysql-5.6.26
部署Tomcat使用jsp链接Msql
上传安装文件:
安装JDK:
# rpm -ivh jdk-8u60-linux-x64.rpm
# java -version
查看新装的java安装所在的位置/usr/java
# rpm -pql jdk-8u60-linux-x64.rpm
修改环境变量
# vim /etc/profile
#JDK的家目录位置
export JAVA_HOME=/usr/java/jdk1.8.0_60/
#JDK运行的而二进制目录
export JAVA_BIN=/usr/java/jdk1.8.0_60/bin
# 环境变量
export PATH=$JAVA_HOMEbin:$PATH
# 定义两个类
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
加载环境变量
# source /etc/profile
安装tomcat
# tar -xvf apache-tomcat-8.0.26.tar.gz -C /usr/local/src/
# cd /usr/local/src/apache-tomcat-8.0.26/
# ls
tomcat
|---bin Tomcat:存放启动和关闭tomcat脚本;
|---conf Tomcat:存放不同的配置文件(server.xml和web.xml);
|---lib:包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中;
|---logs:存放Tomcat执行时的LOG文件;
|---webapps:Tomcat的主要Web发布目录(包括应用程序示例);
|--- ROOT:tomcat的家目录
|--- index.jsp:Tomcat的默认首页文件
|---work:存放jsp编译后产生的class文件或servlet文件存放
|---temp:存放Tomcat运行时所产生的临时文件
tomcat的执行脚本文件
# ls bin/
#bat为windows下的脚本(批处理)
#sh为Linux下的脚本,Shell
#catalina.sh是一个最关键的脚本,其他的启动脚本如startup,shutdown.sh,都是使用了不同的参数调用了该脚本,startup是以start参数调用了catalina脚本,shutdown使用stop调用了catalina脚本!
# cd ..
# pwd
/usr/local/src
# mv apache-tomcat-8.0.26/ /usr/local/tomcat
Tomcat启动脚本
# vim /etc/init.d/tomcat
#!/bin/bash
# Tomcat init script for Linux
# chkconfig: 2345 96 14
# discription: The Apache Tomcat Server/JSP container
JAVA_OPTS=‘-server -Xms64m -Xmx128m‘
JAVA_HOME=/usr/java/jdk1.8.0_60
CATALINA_HOME=/usr/local/tomcat
$CATALINA_HOME/bin/catalina.sh $*
JAVA_OPTS=‘-server -Xms64m -Xmx128m‘是用来设置JAVA相关运行参数的变量
-server 一定要作为第一个参数,在多个CPU时性能佳
-Xms 初始heap(堆)大小,使用最小内存大小,cpu性能高时此值应该设大一些
-Xmx Java heap最大值,使用内存的最大值
上面两个值分配的是JVM的最小和最大值,取决于硬件的物理内存大小,建议为物理内存的一般,不超过80%
JAVA_HOME=/usr/local/jdk1.8.0_60 指定Tomcat目录
$CATALINA_HOME=/usr/local/tomcat $* 指定运行tomcat的脚本
# chmod +x /etc/init.d/tomcat
# service tomcat start
# chkconfig --add tomcat
# chkconfig tomcat on
# netstat -antup | grep 8080
测试Tomcat
览器访问 http://192.168.100.101:8080
创建管理Manger App用户
# vim /usr/local/tomcat/conf/tomcat-users.xml
去掉注释<!-- -->
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/> #添加此行
<user username="compy" password="123456" roles="manager-gui"/> #添加此行
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
几种角色
1:“manager-gui”:Allows access to the html interface
#允许通过web的方式登录查看服务器信息
2:“manager-script”: Allows access to the plain text interface
#允许以纯文本的方式访问
3:“manager-jmx”: Allows access to the JMX proxy interface
#允许jmx的代理访问
4:“manager-status”: Allows access to the read-only status pages
#允许以只读状态访问
没有restart命令,只能先stop在start
# service tomcat stop
# service tomcat start
# ls /usr/local/tomcat/conf/
server.xml是Tomcat的主配置文件(全局),服务器设置的,例如端口设置,路径设置。
context里设置tomcat数据源,用来连接数据库。
tomcat_user主要是用户名和密码的设置。
web是默认首页等等之类的设置
# vim /usr/local/tomcat/conf/server.xml
<Host name="tomcat01.gyso.pw" appBase="/var/www/html" >
<Context path="" docBase="/var/www/html/tomcat01" />
</Host>
<Host name="tomcat02.gyso.pw" appBase="/var/www/html" >
<Context path="" docBase="/var/www/html/tomcat02" />
</Host>
#在末尾的</Engine>上面添加上面这几行
appBase指定应用程序(网站)的基本路径,这里可以存放多个程序(网站),一般是相对路径,相对于tomcat的安装目录。
Context path=""为虚拟目录,如果是空,表示直接就是/,如果是如path="aa",那么访问的时候就是site:8080/aa
xuegod.cndocBase="……" 为实际目录,就是可以是绝对路径,如果是相对路径就是基于appBase
在hosts文件下加两条记录
# service tomcat stop
# service tomcat start
# mkdir -p /var/www/html/tomcat01,tomcat02
# echo tomcat01.gyso.pw > /var/www/html/tomcat01/index.html
# echo tomcat02.gyso.pw > /var/www/html/tomcat02/index.html
在没有真实域名和服务器是,在虚拟机中做实验室需在客户机host文件中添加如下两条:
192.168.100.101 tomcat01.gyso.pw
192.168.100.101 w.gyso.pw
192.168.100.101 tomcat02.gyso.pw
网页测试
http://tomcat01gyso.pw:8080
http://tomcat02.gyso.pw:8080
安装tomcat-Native
Tomcat 可以使用 apr 来提供更好的伸缩性、性能和集成到本地服务器技术。用来提高 tomcat 的性能。 tomcat native 在具体的运行平台上,提供了一种优化技术,它本身是基于 ARP(Apache Portable(轻便) Runtime)技术
我们应用了 tomcat native 技术之后,tomcat 在跟操作系统级别的交互方面可以做得更好,并且它更像apache 一样,可以更好地作为一台 web server。 tomcat 可以利用 apache 的 apr 接口,使用操作系统的部分本地操作,从而提升性能APR 提升的是静态页面处理能力
关于tomcat-native的相关介绍及下载: http://tomcat.apache.org/download-native.cgi
# yum -y install apr-devel gcc gcc-c++ openssl-devel openssl
# tar -zxf tomcat-native-1.1.34-src.tar.gz -C /usr/local/src/
# cd /usr/local/src/tomcat-native-1.1.33-src/jni/native/
# ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.8.0_60/ --with-ssl
# make && make install
需要添加库文件:
# vim /etc/ld.so.conf
/usr/local/apr/lib ##添加此行
# ldconfig
# echo "ldconfig" >>/etc/rc.local
# service tomcat stop
# service tomcat start
看日志看是否支持native
# cat /usr/local/tomcat/logs/catalina.out | grep Native --color
安装mysql
解决依赖
#gcc等相关在编译apache已安装
# yum install -y cmake ncurses-devel
编译安装MySql
# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-5.6.26
创建mysql运行用户
# useradd -M -s /sbin/nologin mysql
# cmake \\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \\
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \\
-DDEFAULT_CHARSET=utf8 \\
-DDEFAULT_COLLATION=utf8_general_ci \\
-DWITH_EXTRA_CHARSETS=all \\
-DWITH_MYISAM_STORAGE_ENGINE=1\\
-DWITH_INNOBASE_STORAGE_ENGINE=1\\
-DWITH_MEMORY_STORAGE_ENGINE=1\\
-DWITH_READLINE=1\\
-DENABLED_LOCAL_INFILE=1\\
-DMYSQL_DATADIR=/usr/local/mysql/data \\
-DMYSQL-USER=mysql
DCMAKE_INSTALL_PREFIX #制定mysql的安装根目录,目录在安装的时候会自动创建,这个值也可以在服务器启动时,用--basedir来设置
DMYSQL_UNIX_ADDR #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变
DDEFAULT_CHARSET #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集
DDEFAULT_COLLATION #默认字符校对
DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默认值也是all支持所有的字符集
DWITH_MYISAM_STORAGE_ENGINE #静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务器,这样MYSQL就支持这三种存储引擎
DWITH_INNOBASE_STORAGE_ENGINE
DWITH_MEMORY_STORAGE_ENGINE
DWITH_READLINE #支持readline库
DENABLED_LOCAL_INFILE #允许本地倒入数据,启用加载本地数据
DMYSQL_DATADIR #mysql数据库存放路径
DMYSQL-USER #运行mysql的用户
除开在线,可以使用本地帮助
# ccmake /usr/local/src/mysql-5.6.26/
以2个进程来编译,不要超过CPU核心数
# make -j 2 ; make install
属主属组更改
# cd && chown -R mysql:mysql /usr/local/mysql/
覆盖原配置文件
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
启动脚本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
更改启动脚本中指定mysql位置
# vim /etc/init.d/ mysqld
basedir=
datadir=
#修改为
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
开机启动
# chkconfig mysqld on
初始化数据库
# /usr/local/mysql/scripts/mysql_install_db \\
--defaults-file=/etc/my.cnf \\
--basedir=/usr/local/mysql/\\
--datadir=/usr/local/mysql/data/\\
--user=mysql
初始化看这个下面有无mysql和test等数据库
# ls /usr/local/mysql/data/
这个里面是部分命令,让系统直接调用
# ln -s /usr/local/mysql/bin/* /bin/
# servie mysqld start
初始安全设置(设置root密码,123456)[记住,编译安装之前,记得除去mysql mysql-devel mysql-libs三个软件]
测试登录(OK)
# mysql -uroot -p123456
也可以借助下面的脚本来实现,脚本需要修改,注意
# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
# source /etc/profile
# vim /etc/my.cnf
[mysqld]
character-set-server=utf8 #添加此行,修改mysql数据库默认编码(和低版本的mysql写法不一样, 低版本的写法是:default-character-set=utf8
# service mysqld restart
# mysql_secure_installation //数据库安全初始化
# mysql -uroot -p123456 //检测登陆(OK)
mysql> show variables like "%char%";
+---------------------------+-----------------------------------+
| Variable_name | Value |
+---------------------------+-----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir |/usr/local/mysql/share/charsets/ |
+---------------------------+-----------------------------------+
测试数据
#mysql -uroot -p123456
mysql> create database tomcat; //测试数据库,为了和后面方便测试,这里创建tomcat
mysql> use tomcat
mysql> create table test01(id int,name varchar(128)); //创建测试表
mysql> insert into test01 values(1,"compy01"),(2,"compy02"),(3,"compy03") ,(4,"godbey");//创建测试数据
mysql> grant all on tomcat.* to [email protected] identified by ‘tomcat‘; //授权用户
mysql> \\q
# mysql -utomcat -ptomcat //测试tomcat可以登陆(OK)
测试jsp链接mysql
Jsp链接mysql,官方提供了工具:安装mysql-connector
安装mysql-connector
# tar xvf mysql-connector-java-5.1.36.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-connector-java-5.1.36/
只需要复制到tomcat的lib目录下,重启tomcat就可以生效
# cp /usr/local/src/mysql-connector-java-5.1.36/mysql-connector-java-5.1.36-bin.jar /usr/local/tomcat/lib/
# service tomcat stop
# service tomcat start
测试
# vim /usr/local/tomcat/webapps/ROOT/mysql.jsp //建立测试页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
String driverName="com.mysql.jdbc.Driver";
String userName="tomcat";
String userPasswd="tomcat";
String dbName="tomcat";
String tableName="test01";
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData rmeta = rs.getMetaData();
int numColumns=rmeta.getColumnCount();
out.print("id");
out.print("|");
out.print("name");
out.print("<br>");
while(rs.next())
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
out.print("<br>");
out.print("数据库操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
访问网址如图
以上是关于Tomcat部署环境的主要内容,如果未能解决你的问题,请参考以下文章
Linux集成环境部署 mysql + tomcat + redis