centos7 tomcat?centos怎么安装软件包

各位老铁们,大家好,今天由我来为大家分享centos7 tomcat,以及centos怎么安装软件包的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

如何在CentOS7上安装Tomcat9

1通过 SecureCRT连接到阿里云 CentOS7服务器;

2进入到目录/usr/local/中:

cd/usr/local/

3创建目录/usr/local/tools,如果有则忽略:

mkdir-p tools

4创建/usr/local/tomcat目录,如果已存在则忽略:

mkdir-p tomcat

5进入到目录/usr/local/tools中:

cd tools/

6下载 apache-tomcat-9.0.0.M4.tar.gz文件:

wget

7解压缩 apache-tomcat-9.0.0.M4.tar.gz:

tar-zxvf apache-tomcat-9.0.0.M4.tar.gz

8将通过解压得到的 apache-tomcat-9.0.0.M4文件复制到/usr/local/tomcat目录中:

mv apache-tomcat-9.0.0.M4../tomcat/

9打开文件/etc目录下的 profile文件:

vim/etc/profile

将如下代码追加到 profile文件末尾:

# idea- tomcat9 config start- 2016-05-01

CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4

CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4

PATH=$PATH:$CATALINA_BASE/bin

export PATH CATALINA_BASE

# idea- tomcat9 config end- 2016-05-01

保持并推出:wq!

10修改 tomcat的端口号和字符编码:

进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf目录中:

cd../tomcat/apache-tomcat-9.0.0.M4/conf

打开 tomcat服务的配置文件 server.xml:

vi server.xml

找到如下代码:

将其中的 8080改成 HTTP协议的默认端口 80,改后的代码如下:

11增加 manager-gui图形化管理界面的访问权限(不需要的话,此步骤可忽略):

打开 tomcat的用户配置文件 tomcat-users.xml:

vi tomcat-users.xml

在标签前加入如下代码:

这里设置的 username和 password都是 password,角色为 manager-gui;

键入 Esc并输入“:wq!”保持并退出;

12进入到/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin目录中:

cd../bin/

13打开 vi catalina.sh文件:

在# OS specific support.前面加入如下代码:

JAVA_HOME=/usr/local/jdk/jdk1.8.0_91

JRE_HOME=$JAVA_HOME/jre

键入 Esc并输入“:wq!”保持并退出;

14启动 tomcat服务:

./startup.sh

打印如下信息则表明启动 Tomcat服务成功:

Using CATALINA_BASE:/usr/local/tomcat/apache-tomcat-9.0.0.M4

Using CATALINA_HOME:/usr/local/tomcat/apache-tomcat-9.0.0.M4

Using CATALINA_TMPDIR:/usr/local/tomcat/apache-tomcat-9.0.0.M4/temp

Using JRE_HOME:/usr/local/jdk/jdk1.8.0_91/jre

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

Tomcat started.

打开浏览器输入 IP地址看看吧!如果出现了我们的可爱的“小黄猫”则表明我们的 Tomcat已提供服务啦!

15关闭 tomcat服务:

./shutdown.sh

打印如下信息则表明关闭 Tomcat服务成功:

Using CATALINA_BASE:/usr/local/tomcat/apache-tomcat-9.0.0.M4

Using CATALINA_HOME:/usr/local/tomcat/apache-tomcat-9.0.0.M4

Using CATALINA_TMPDIR:/usr/local/tomcat/apache-tomcat-9.0.0.M4/temp

Using JRE_HOME:/usr/local/jdk/jdk1.8.0_91/jre

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

注意:不可连续执行多次./shutdown.sh命令,多次后报如下错误:

SEVERE: Catalina.stop:

java.net.ConnectException: Connection refused

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

at java.net.Socket.connect(Socket.java:589)

at java.net.Socket.connect(Socket.java:538)

at java.net.Socket.(Socket.java:434)

at java.net.Socket.(Socket.java:211)

at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

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

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

at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)

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

16将 tomcat9加入到系统服务列表中:

进入到/etc/init.d目录中:

cd/etc/init.d

创建 tomcat9服务配置文件:

vi tomcat9

将如下代码加入写入到 tomcat9配置文件中:

# idea- tomcat config start- 2016-05-01

#!/bin/bash

# description: Tomcat Start Stop Restart

# processname: tomcat

# chkconfig: 2345 20 80

JAVA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

export PATH

CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

case$1 in

start)

sh$CATALINA_HOME/bin/startup.sh

;;

stop)

sh$CATALINA_HOME/bin/shutdown.sh

;;

restart)

sh$CATALINA_HOME/bin/shutdown.sh

sh$CATALINA_HOME/bin/startup.sh

;;

esac

exit 0

#chmod 755 tomcat

#chkconfig--add tomcat

#chkconfig--level 2345 tomcat on

#chkconfig--list tomcat

# idea- tomcat config end- 2016-05-01

键入 Esc并输入“:wq!”保持并退出;

其中的注意点是将 JAVA_HOME和 CATALINA_HOME变量设置成与我们当前配置相一致的路径;

17为 tomcat9分配可执行权限:

chmod+x tomcat9

18将 tomcat9纳入到系统的服务列表中,即添加 tomcat9为系统服务:

chkconfig--add tomcat9

19查看当前系统服务都有哪些:

chkconfig--list

也可以查看指定的系统服务,如这里我们指定 tomcat9这个服务:

chkconfig--list tomcat9

打印如下信息:

tomcat9 0:off 1:off 2:on 3:on 4:on 5:on 6:off

则表明已将 tomcat9设置为系统服务,2、3、4、5都为 on表示可随系统自动启动;

20我们可以在任意目录下执行关闭、启动、重启 Tomcat9服务啦:

20.1关闭 tomcat9服务:

service tomcat9 stop

20.2启动 tomcat9服务:

service tomcat9 start

20.3重启 tomcat9服务:

service tomcat9 restart

后记:

linux系统中的/etc目录表示“设备”,意为与硬件设备相关的信息;

/etc/init.d目录下的文件表示当前设备的初始化配置信息;

命令 chkconfig表示添加(--add)、删除(--del)、查看(--list)系统服务;

centos7怎样查看tomcat安装路径

方法如下:

在Tomcat默认安装后,tomcat的主目录是webapps/root目录。

如果想改变tomcat的主目录的话可以如下所做:

1、(假设tomcat安装在C盘下,项目名为bidding)打开C:/Tomcat/conf/server.xml,在<host></host>之间加入代码:<Context docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/bidding" path="" debug="0" reloadable="true"/>这样重新启动tomcat,我们的主目录就被设置为bidding这个项目了。

2、将tomcat安装目录下的ROOT下的所有文件全部删除,

然后将工程的解压后的文件全部拷进去。

CentOS 7 下Tomcat启动超慢的原因及解决方案

CentOS 7系统中安装好openjdk和Tomcat后,启动过程很慢,长达数分钟,日志如下:

tomcat启动耗时278084ms折合278秒,对于刚刚安装的干净tomcat,这肯定是不对劲的。

其中有一条日志引起了笔者的注意:

显然tomcat执行到这里时出问题了,google了一下,经过一番搜索明白了其中的缘由。

在tomcat官方wiki文档的 HowToFasterStartUp章节中,Entropy Source部分有一段这样的说明:

从这里我们得知Tocmat的Session ID是通过SHA1PRNG算法计算得到的,计算Session ID的时候必须有一个密钥,为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥,它强依赖于获取熵池中的随机数来进行创建。

那么什么是/dev/random?什么是熵池?

/dev/random

从维基百科得知,在UNIX操作系统(包括类UNIX系统)中,/dev/random是一个特殊的设备文件,可以用作随机数生成器或伪随机数生成器。

Linux内核中的是第一个以背景噪声产生真正的随机数产生的实现,它允许程序访问来自设备驱动程序或其它来源的背景噪声。

Linux上有两个通用的随机设备:/dev/random和/dev/urandom。其中/dev/random的随机性最好,因为它是一个阻塞的设备。而/dev/random的一个副本是/dev/urandom(“unblocked”,非阻塞的随机数生成器),它会重复使用熵池中的数据以产生伪随机数据。这表示对/dev/urandom的读取操作不会产生阻塞,但其输出的熵可能小于/dev/random的。所以它可以作为生成较低强度密码的伪随机数生成器,不建议用于生成高强度长期密码。

熵池

熵池本质上是若干字节,/proc/sys/kernel/random/entropy_avail中存储了熵池现在的大小,/proc/sys/kernel/random/poolsize是熵池的最大容量,单位都是bit。如果 entropy_avail的值小于要产生的随机数bit数,那么/dev/random就会堵塞。

为什么熵池不够用?

熵池实际上是从各种noice source中获取数据,noice source可能是键盘事件、鼠标事件、设备时钟中等。linux内核从2.4升级到2.6时,处于安全性的考虑,废弃了一些source。source减少了,熵池补给的速度当然也变慢,进而不够用。

其实,通过消耗熵池,可以构造DDOS攻击。原理很简单,熵池空了,依赖随机数的业务(SSL,加密等)就不能正常进行。

通过以上信息,笔者得知该问题是由于熵池不足导致的。怎么解决?

使用非阻塞性的生成器/dev/urandom代替/dev/random。

1、可在JVM环境中配置

通过配置发生器指定熵收集守护进程

修改$JAVA_PATH/jre/lib/security/java.security中参数 securerandom.source为:

2、也可在Tomcat环境中配置

通过配置JRE使用非阻塞的Entropy Source获取熵

在$TOMCAT_HOME/bin/catalina.sh中加入:

这个系统属性egd表示熵收集守护进程(entropy gathering daemon)。

1、[硬件随机数生成器]安装并使用rng-tools作为额外的熵随机数生成器(推荐)

cat/dev/random命令会消耗熵池, rngd守护进程会补充熵池,可使用如下命令来测试随机数生成的情况:

2、[软件随机数生成器]在rng-tools仍不满足的情况下,可使用haveged作为额外的熵随机数生成器

要检查是否需要 Haveged,可使用下面命令查看当前收集到的熵:

如果结果比较低(<1000),建议安装 haveged,否则加密程序会处于等待状态,直到系统有足够的熵。

安装 haveged之后,可以再次查看系统熵看下有无提升。

因为方法一存在一定的不安全性,且需要对环境进行配置,为了满足熵的需要,这里笔者选择了第二种方法,使用rng-tools作为额外的熵随机数生成器,同以上操作后顺利解决了问题。

操作后重启tomcat日志如下,启动速度快了两个数量级:

参考文档:

阅读剩余
THE END