在Ubuntu 16.04上安装和配置Tomcat 8

出处:原始链接

简介

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

猜你喜欢

转载自blog.csdn.net/juan190755422/article/details/85610924