以下是在 Linux 上安装 Apache Tomcat 的简要步骤。
安装 Tomcat 之前必须安装 JDK,详见 JDK 安装 。
虽然 Tomcat6.0 之后就不需要安装 JDK 了,只需要 JRE(Java Runtime Environment:运行环境),但还是建议安装 JDK,因为 JDK 里自带了 JRE。
下载 Tomcat:Tomcat 官网下载地址
选择需要下载的版本
下载 tar.gz 文件
下载成功:点击下载
打开 Windows 的命令窗口,执行以下命令将下载到的文件从 Windows 复制到 Linux 系统:
pscp -r C:\Users\zk\Downloads\apache-tomcat-9.0.29.tar.gz root@46.90.244.69:/usr/local
命令解析:
复制完成
登录 Linux 系统查看是否收到文件
解压文件:tar -xzvf apache-tomcat-9.0.29.tar.gz
因为 Tomcat 的安装路径中不能有-,所以需要 apache-tomcat-9.0.29 重命名:mv apache-tomcat-9.0.29 tomcat9.0
重命名成功
解压 tomcat9.0/bin 目录下的 commons-daemon-native.tar.gz 文件:tar xzvf commons-daemon-native.tar.gz
解压成功
进入 commons-daemon-1.2.2-native-src 下的 unix 目录
检查 JDK 配置
如果 JDK 未配置,需要先配置 JDK,详见 JDK 安装 。
配置完 JDK 后,再次检查
在 unix 目录下编译安装:make
执行 make 命令会在当前目录下生成一个 jsvc 文件,将其复制到 tomcat 的 bin 目录:cp jsvc /usr/local/tomcat9.0/bin
由于 root 用户直接用 ./startup.sh 命令启动 Tomcat 有一个严重的问题,那就是 Tomcat 会具有 root 权限,这意味着任何一个页面脚本(html/js)都具有 root 权限,可以轻易的用页面脚本去修改硬盘里的文件,所以这里要用非 root 用户启动 Tomcat。
新建一个叫 tomcat 的用户(可以为用户指定用户组,也可以不指定。但是如果 Linux 系统用作服务器的时候,建议指定用户组。因为作为服务器时会有很多人登录服务器,此时通过用户组来设置权限就非常方便了,比如某个用户组只能看到某几个文件夹,其他的这个用户组不可见)
新建用户组(其 GID 为 1111;组名为 operate):groupadd -g 1111 operate
新建用户 tomcat :useradd -g operate -s /sbin/nologin tomcat
更改 Tomcat 文件的所有者:chown -R tomcat:operate /usr/local/tomcat9.0/
赋予 tomcat 用户执行权:>chmod a+x /usr/local/tomcat9.0/bin/daemon.sh
修改启动脚本文件:vi /usr/local/tomcat9.0/bin/daemon.sh
找到如下内容进行修改(输入 i 进入编辑状态,改完按 esc 退出编辑,输入 :wq 退出并保存)
以守护进程(daemon)的方式启动tomcat:/usr/local/tomcat9/bin/daemon.sh start
发现以守护进程的方式启动失败,琢磨了好久也没解决,不得已,最终还是在 bin 目录下用了 ./startup.sh 启动了 Tomcat。
浏览器访问:http://47.100.244.169:8080/
关闭Tomcat:./shutdown.sh
将 tomcat9/bin 目录下的 catalina.sh 文件拷贝到 /etc/init.d 下,并重命名为 tomcat:cp -p /usr/local/tomcat9/bin/catalina.sh /etc/init.d/tomcat
用 vi 命令编辑 tomcat 文件(输入 i 进入编辑状态,改完按 esc 退出编辑,输入 :wq 退出并保存)
在第一行 #!/bin/sh 下面添加如下代码:
# chkconfig: 112 63 37
# description: tomcat serverinit script
# Source Function Library
./etc/init.d/functions
JAVA_HOME=/usr/local/jdk1.8.0_231
CATALINA_HOME=/usr/local/tomcat9
保存之后,需要重新载入一下配置文件:systemctl daemon-reload
给 tomcat 文件赋予权限
chmod 755 /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on
启动 Tomcat:service tomcat start
浏览器访问:http://47.100.244.169:8080/
停止 Tomcat:service tomcat stop
浏览器访问:http://47.100.244.169:8080/,服务关闭后访问失败。
以服务方式查看 Tomcat 版本信息:service tomcat version
查看 Tomcat 进程:ps -ef|grep tomcat
查看日志:tail /usr/local/tomcat9/logs/catalina.out
清空日志:truncate -s 0 /usr/local/tomcat9/logs/catalina.out
清空日志详见:Linux 清空 catalina.out 日志
打开 $JAVA_PATH/jre/lib/security/java.security 这个文件(输入 i 进入编辑状态,改完按 esc 退出编辑,输入 :wq 退出并保存)
找到如下内容:
securerandom.source=file:/dev/urandom 或 securerandom.source=file:/dev/random
替换成:
securerandom.source=file:/dev/./urandom