出处:原始链接
简介
Tomcat 是被广泛使用的开源web服务器,它具有轻量级、使用简单灵活的优点,并且具有大量插件的生态系统。本文带你了解在Ubuntu 16.04上如何安装和配置Tomcat 8。
你需要
- Ubuntu 16.04服务器
- sudo权限的非root用户。
安装jdk
开始之前需要更新apt-get软件列表,可以使用命令:
sudo apt-get update
安装jdk
sudo apt-get install default-jdk
使用以下命令查看jdk版本:
java -version
你会看到:
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
创建Tomcat用户
出于安全考虑,建议使用非root用户。为了运行tomcat,创建组合用户:
创建tomcat 组:
sudo groupadd tomcat
创建一个tomcat用户,在/opt/tomcat 文件夹下的tomcat组下:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
安装Tomcat
从 Tomcat 8 Downloads page下载tomcat最新版本:
或者使用 wget
命令下载Tomcat:
wget http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
解压Tomcat:
sudo tar -xzvf apache-tomcat-8.5.5.tar.gz
移动Tomcat解压文件 apache-tomcat-8.5.5 到
/opt
:
sudo mv apache-tomcat-8.5.5 /opt/tomcat
给tomcat用户合适的权限。
sudo chgrp -R tomcat /opt/tomcat
sudo chown -R tomcat /opt/tomcat
sudo chmod -R 755 /opt/tomcat
创建 systemd Service 文件
创建systemd service 文件来管理Tomcat 进程。
在/etc/systemd/system/
下创建tomcat.service
sudo nano /etc/systemd/system/tomcat.service
添加以下内容:
[Unit]
Description=Apache Tomcat Web Server
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=15
Restart=always
[Install]
WantedBy=multi-user.target
- [Unit] 表示这是基础信息
- Description 是描述
- After 是在那个服务后面启动,一般是网络服务启动后启动
- [Service] 表示这里是服务信息
- Type 是服务类型
- PIDFile 是服务的pid文件路径, 开启后,必须在tomcat的bin/catalina.sh中加入CATALINA_PID参数
- ExecStart 是启动服务的命令
- ExecReload 是重启服务的命令
- ExecStop 是停止服务的指令
- [Install] 表示这是是安装相关信息
- WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
保存文件,刷新配置,让systemctl能识别。
sudo systemctl daemon-reload
启动Tomcat,并检查Tomcat的状态:
sudo systemctl start tomcat
sudo systemctl status tomcat
输出为:
● tomcat.service - Apache Tomcat Web Server
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2019-01-02 13:08:32 IST; 5s ago
Process: 11120 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 11150 (java)
CGroup: /system.slice/tomcat.service
└─10050 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.log
Jan 02 13:08:32 host-10-32-104-242 systemd[1]: Starting Apache Tomcat Web Server...
Jan 02 13:08:32 host-10-32-104-242 systemd[1]: Started Apache Tomcat Web Server.
允许开机自动启动:
sudo systemctl enable tomcat
允许Tomcat通过防火墙
Tomcat默认端口为 8080, 要允许这个端口通过防火墙,命令如下:
sudo ufw allow 8080