配置要求
这里列出的软件版本仅代表写作本文档使用的版本。操作时,请您以实际软件版本为准。
- 操作系统:CentOS 7.4
- Tomcat 版本:Tomcat 8.5.23
- JDK 版本:JDK 1.8.0_141
安装前准备
CentOS 7.4 系统默认开启了防火墙。您可以关闭防火墙
关闭防火墙:
systemctl stop firewalld.service
关闭防火墙开机自启动功能:
systemctl disable firewalld.service
在安全组中放行 8080 端口。具体操作,请参考 添加安全组规则
下载源代码
wget https://mirrors.aliyun.com/apache/tomcat/tomcat-8/v8.5.23/bin/apache-tomcat-8.5.23.tar.gz
说明:源代码版本会不断升级。您可以在 https://mirrors.aliyun.com/apache/tomcat/tomcat-8/ 目录下获取合适的安装包地址。
wget http://mirrors.linuxeye.com/jdk/jdk-8u141-linux-x64.tar.gz
说明:源代码版本会不断升级。您可以在 http://mirrors.linuxeye.com/jdk/ 目录下获取合适的安装包地址。
安装 JDK
按以下步骤安装 JDK。
新建一个目录:mkdir /usr/java
解压 jdk-8u141-linux-x64.tar.gz 到 /usr/java。
tar xzf jdk-8u141-linux-x64.tar.gz -C /usr/java
设置环境变量:
编辑 /etc/profile:vi /etc/profile
。
按 i 键进入编辑模式。
在 /etc/profile 文件中添加以下信息:
#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_152
JRE_HOME=/usr/java/jdk1.8.0_152/jre
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH
按 Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
加载环境变量:source /etc/profile
。
查看 jdk 版本。当出现 jdk 版本信息时,表示 JDK 已经安装成功。java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
安装 Tomcat
1、按以下步骤安装 Tomcat。
依次运行以下命令解压 apache-tomcat-8.5.23.tar.gz,重命名 Tomcat 目录,并设置用户权限。
tar zxvf apache-tomcat-8.5.23.tar.gz
mv apache-tomcat-8.5.23 /usr/local/tomcat/
chown -R www.www /usr/local/tomcat/
说明:
在 /usr/local/tomcat/ 目录里:
bin 目录中存放 Tomcat 的一些脚本文件,包含启动和关闭 Tomcat 服务脚本。
conf:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和 web.xml。
webapps:Tomcat 的主要 Web 发布目录,默认情况下把 Web 应用文件放于此目录。
logs:存放 Tomcat 执行时的日志文件。
2、切换到 /usr/local/tomcat/conf/ 目录:cd /usr/local/tomcat/conf/
打开文件 /etc 目录下的 profile 文件:
vim /etc/profile
将如下代码追加到 profile 文件末尾:
#idea - tomcat config
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=/usr/local/tomcat
PATH=$PATH:$CATALINA_BASE/bin
export PATH CATALINA_BASE
保持并推出:wq!
3、增加 manager-gui 图形化管理界面的访问权限(不需要的话,此步骤可忽略):
打开 tomcat 的用户配置文件(/conf) tomcat-users.xml: vi tomcat-users.xml
在</tomcat-users>
标签前加入如下代码:
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager"/>
键入 Esc 并输入“:wq!”保持并退出;
进入tomcat目录下/webapps/manager/META-INF
目录
修改context.xml
文件
<Context antiResourceLocking="false" privileged="true" >
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
注释掉<Valve className="org.apache.catalina.valves.RemoteAddrValve"
这主要是保证操纵Tomcat服务器Manger功能的电脑地址为本机或者固定地址。
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
键入 Esc 并输入“:wq!”保持并退出;
重启tomcat就可以了。
4、进入到 /usr/local/tomcat/bin 目录中
启动 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 已提供服务啦!
5 关闭 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.<init>(Socket.java:434)
at java.net.Socket.<init>(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)
6、将 tomcat 加入到系统服务列表中:
进入到 /etc/init.d 目录中:
cd /etc/init.d
创建 tomcat 服务配置文件:
vim tomcat
将如下代码加入写入到 tomcat 配置文件中:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 2345 20 80
JAVA_HOME=/usr/java/jdk1.8.0_152/
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/local/tomcat/
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
键入 Esc 并输入“:wq!”保持并退出;
其中的注意点是将 JAVA_HOME 和 CATALINA_HOME 变量设置成与我们当前配置相一致的路径;
7、 为 tomcat 分配可执行权限:chmod +x tomcat
8、将 tomcat9 纳入到系统的服务列表中,即添加 tomcat 为系统服务:chkconfig --add tomcat
9、也可以查看指定的系统服务,如这里我们指定 tomcat 这个服务:chkconfig --list tomcat
10、我们可以在任意目录下执行关闭、启动、重启 Tomcat 服务啦:
service tomcat stop
service tomcat start
service tomcat restart