关于Ubuntu Server 18.04 LTS 安装Tomcat并配置systemctl管理Tomcat服务的问题

yizhihongxing

下面是详细的攻略:

环境准备

  1. 确保已经安装了Java环境,Tomcat需要依赖Java运行
sudo apt install default-jdk
  1. 下载Tomcat

可以在官网下载Tomcat https://tomcat.apache.org/download-90.cgi。

这里以apache-tomcat-9.0.52.tar.gz为例,在终端中执行以下命令进行下载:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz
  1. 安装Tomcat

先将下载的压缩包解压缩到 /usr/local 下,将其目录改名为 tomcat。

sudo tar -zxvf apache-tomcat-9.0.52.tar.gz -C /usr/local
sudo mv /usr/local/apache-tomcat-9.0.52 /usr/local/tomcat
  1. 添加Tomcat用户
sudo groupadd tomcat
sudo useradd -g tomcat -s /bin/false -d /usr/local/tomcat tomcat
  1. 设置Tomcat目录权限
sudo chgrp -R tomcat /usr/local/tomcat/
sudo chmod -R g+r /usr/local/tomcat/conf
sudo chmod -R g+x /usr/local/tomcat/conf
sudo chown -R tomcat /usr/local/tomcat/webapps/
sudo chown -R tomcat /usr/local/tomcat/work/
sudo chown -R tomcat /usr/local/tomcat/temp/
sudo chown -R tomcat /usr/local/tomcat/logs/

配置Tomcat服务

  1. 新建tomcat.service文件
sudo vim /etc/systemd/system/tomcat.service
  1. 编写文件内容
[Unit]
Description=Tomcat9
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat

ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

其中JAVA_HOME、CATALINA_PID、CATALINA_HOME、CATALINA_BASE的路径需要根据实际情况修改。

  1. 更新systemd配置
sudo systemctl daemon-reload
  1. 启动并设置Tomcat自启动
sudo systemctl start tomcat
sudo systemctl enable tomcat

执行 systemctl status tomcat 可以查看Tomcat服务的状态。

示例

  1. 部署一个hello world的Servlet。

我们在 $CATALINA_HOME/webapps 下新建一个目录 helloworld,然后在这个目录下新建 WEB-INF 目录。在 WEB-INF 目录下新建一个 web.xml 文件,在该文件中进行 Servlet 的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID" version="3.1">
    <display-name>helloworld</display-name>

    <servlet>
      <servlet-name>HelloWorld</servlet-name>
      <servlet-class>HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name>
      <url-pattern>/hello</url-pattern>
    </servlet-mapping>

</web-app>

在 helloworld 目录下新建 HelloWorld.java 文件,编写如下类:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class HelloWorld extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

当我们访问 /helloworld/hello 的时候,就可以看到输出了。

另外,还可以使用 /usr/share/tomcat9-examples/examples 中的一些示例来测试Tomcat是否正常运行。

例如,在 $CATALINA_HOME/webapps 下新建一个目录 examples,然后将 $CATALINA_HOME/webapps/examples.war 解压缩到该目录下,在浏览器中输入 http://localhost:8080/examples 可以看到 Tomcat 示例应用的主页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Ubuntu Server 18.04 LTS 安装Tomcat并配置systemctl管理Tomcat服务的问题 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Sping Security前后端分离两种实战方案

    下面我将详细讲解“Sping Security前后端分离两种实战方案”的完整攻略。 方案概述 Spring Security作为一个强大的安全框架,在项目中得到了广泛的应用,但是其安全配置可能会随着项目的复杂度而变得非常繁琐。而前后端分离的架构模式也越来越多地被应用在实际项目中,那么如何在Spring Security中实现前后端分离呢?本文将介绍两种前后端…

    Java 2023年5月20日
    00
  • spring security实现下次自动登录功能过程解析

    下面我将详细讲解“Spring Security实现下次自动登录功能”的完整攻略,过程中会包含两个示例。 Spring Security实现下次自动登录功能过程解析 简介 Spring Security是Spring中极为重要的一个安全框架,它主要用于为Spring应用程序提供身份验证和授权。其中,实现下次自动登录功能是Spring Security一个常用…

    Java 2023年6月3日
    00
  • Java C++ 算法题解leetcode669修剪二叉搜索树示例

    Java C++ 算法题解leetcode669修剪二叉搜索树示例 问题描述 给定一个二叉搜索树,同时给定区间[L,R],将BST中所有小于L的节点和大于R的节点剪枝。 解法 题目要求我们剪掉所有小于L的节点和大于R的节点,我们可以采取遍历整个二叉搜索树的方式,检查每个节点是否在指定区间[L,R]内。如果当前节点的值小于L,则需要删除当前节点的左子树中所有节…

    Java 2023年5月19日
    00
  • js前台分页显示后端JAVA数据响应

    为了在前台进行分页显示后端Java数据响应,我们需要进行以下步骤: 后端Java代码编写 首先,在后端Java代码中,需要完成以下任务: 获取数据库中的数据。 按照前台请求的分页大小和页码数,对数据进行分页。 将分页后的数据封装成JSON格式的数据,传递给前端。 这些任务可以通过使用Spring Boot框架和MyBatis ORM完成。 举个例子,示例代码…

    Java 2023年6月15日
    00
  • struts2自定义MVC框架

    下面我将详细讲解如何自定义一个基于Struts2的MVC框架。 1. 确定项目结构 首先,在项目中,我们需要有一个Controller类来处理请求,并调用对应的Service处理业务逻辑。同时,还要有一个View类负责页面的展示。在这里,我们可以采用MVC的经典分层结构,将不同的代码放在不同的包中: com.example.framework.mvc ├─ …

    Java 2023年5月20日
    00
  • 使用Spring Boot 2.x构建Web服务的详细代码

    使用Spring Boot 2.x构建Web服务的详细代码攻略 Spring Boot是一个流行的Java框架,可以帮助开发人员快速构建Web应用程序。本文将详细介绍使用Spring Boot 2.x构建Web服务的详细代码攻略,包括如何创建Spring Boot项目、如何定义Controller、如何处理请求、如何返回响应等。 创建Spring Boot项…

    Java 2023年5月15日
    00
  • 详解spring整合hibernate的方法

    下面是详解spring整合hibernate的方法的完整攻略: 一、准备工作 1.1 项目结构 首先,我们需要新建一个Maven项目,并在其中引入Spring和Hibernate的相关依赖,具体的pom.xml文件可以参考以下代码: <!– Spring –> <dependency> <groupId>org.spr…

    Java 2023年5月19日
    00
  • 用JAVASCRIPT帮我写个计数器

    请先确保你已经有一个网站,并且能够在页面上进行JavaScript编程。 下面是使用JavaScript编写计数器的详细攻略: 步骤1: 创建一个HTML文档,并在其中添加一个按钮和一个初始值为0的文本框。 <!DOCTYPE html> <html> <head> <title>计数器</title&g…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部