当前位置: 首页 > article >正文

使用源码编译安装 Tomcat

安装

本文将详细介绍如何在 Linux 系统上通过源码编译安装 Apache Tomcat,包括直接下载 Java 二进制包并设置 Java 环境变量的全过程。

一、环境准备

1. 系统要求

  • 操作系统:CentOS 7/8、Ubuntu 18.04/20.04 等主流 Linux 发行版
  • 网络连接:需要访问互联网以下载源码和依赖包
  • 权限要求:具备 root 或具有 sudo 权限的用户

2. 基础工具安装

在开始之前,确保安装了必要的工具。

CentOS/RHEL 系统
sudo yum update -y
sudo yum install -y wget tar gzip unzip
Ubuntu/Debian 系统
sudo apt update
sudo apt install -y wget tar gzip unzip

二、安装 Java 环境

1. 下载 Java 二进制包

您可以从 OpenJDK 或 Oracle 官方网站下载 Java 二进制包。这里以 OpenJDK 11 为例。

# 创建目录以存放 Java 包
mkdir ~/java
cd ~/java

# 下载 OpenJDK 11 二进制包
wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz

2. 解压 Java 包

# 解压到 /usr/local/java 目录
sudo mkdir -p /usr/local/java
sudo tar -zxvf openjdk-11.0.2_linux-x64_bin.tar.gz -C /usr/local/java

# 重命名目录
sudo mv /usr/local/java/jdk-11.0.2 /usr/local/java/jdk11

3. 配置环境变量

为了使系统识别 Java,需要设置 JAVA_HOME 和更新 PATH

# 编辑 /etc/profile 或创建新的环境变量文件
sudo vim /etc/profile.d/java.sh

添加以下内容:

export JAVA_HOME=/usr/local/java/jdk11
export PATH=$PATH:$JAVA_HOME/bin

保存后,使配置生效:

source /etc/profile.d/java.sh

4. 验证 Java 安装

java -version

输出应类似于:

openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9)
OpenJDK 64-Bit Server VM (build 11.0.2+9, mixed mode)

三、安装 Apache Ant

Tomcat 的源码编译需要 Apache Ant 工具。

1. 安装 Ant

CentOS/RHEL 系统
sudo yum install -y ant
Ubuntu/Debian 系统
sudo apt install -y ant

2. 验证 Ant 安装

ant -version

输出类似于:

Apache Ant(TM) version 1.10.5 compiled on July 10 2018

四、下载和编译 Tomcat 源码

1. 下载 Tomcat 源码

mkdir ~/tomcat-source
cd ~/tomcat-source

# 下载 Tomcat 9.0.72 源码
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.72/src/apache-tomcat-9.0.72-src.tar.gz

# 解压
tar -zxvf apache-tomcat-9.0.72-src.tar.gz
cd apache-tomcat-9.0.72-src

2. 编译 Tomcat 源码

# 使用 Ant 编译
ant deploy

编译过程可能需要几分钟,成功后,编译结果位于 output/build 目录。

五、安装和配置 Tomcat

1. 移动编译好的 Tomcat

sudo mv output/build /usr/local/tomcat9

2. 创建 Tomcat 用户

# 创建用户组和用户
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /usr/local/tomcat9 tomcat

# 修改目录权限
sudo chown -R tomcat:tomcat /usr/local/tomcat9

3. 设置环境变量

# 编辑 /etc/profile.d/tomcat.sh
sudo vim /etc/profile.d/tomcat.sh

添加以下内容:

export CATALINA_HOME=/usr/local/tomcat9
export PATH=$PATH:$CATALINA_HOME/bin

使配置生效:

source /etc/profile.d/tomcat.sh

六、启动 Tomcat 服务

1. 手动启动

tomcat 用户身份启动服务:

sudo su - tomcat

# 启动 Tomcat
$CATALINA_HOME/bin/startup.sh

2. 验证服务状态

ps -ef | grep tomcat

3. 访问测试

在浏览器中访问:

http://<服务器IP>:8080

如果看到 Tomcat 的默认页面,表示安装成功。

七、配置 Tomcat 为系统服务

1. 创建 Systemd 服务文件

sudo vim /etc/systemd/system/tomcat.service

添加以下内容:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/local/java/jdk11
Environment=CATALINA_PID=/usr/local/tomcat9/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat9
Environment=CATALINA_BASE=/usr/local/tomcat9
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseG1GC'

ExecStart=/usr/local/tomcat9/bin/startup.sh
ExecStop=/usr/local/tomcat9/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

2. 重新加载 Systemd 配置

sudo systemctl daemon-reload

3. 管理 Tomcat 服务

# 启动服务
sudo systemctl start tomcat

# 查看状态
sudo systemctl status tomcat

# 设置开机自启
sudo systemctl enable tomcat

八、优化配置

1. 调整 JVM 参数

编辑 $CATALINA_HOME/bin/setenv.sh

sudo vim $CATALINA_HOME/bin/setenv.sh

添加:

CATALINA_OPTS="-Xms1024M -Xmx2048M -server -XX:+UseG1GC"

2. 配置字符编码

编辑 server.xml

sudo vim $CATALINA_HOME/conf/server.xml

<Connector> 标签中添加 URIEncoding="UTF-8"

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           URIEncoding="UTF-8" />

3. 配置防火墙

CentOS 7/8 使用 firewalld
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
Ubuntu 使用 ufw
sudo ufw allow 8080/tcp
sudo ufw reload

九、部署 Web 应用

1. 自动部署

.war 包复制到 $CATALINA_HOME/webapps 目录,Tomcat 会自动解压和部署。

2. 手动部署

启用 Tomcat 管理后台,编辑 tomcat-users.xml

sudo vim $CATALINA_HOME/conf/tomcat-users.xml

添加用户和角色:

<role rolename="manager-gui"/>
<user username="admin" password="your_password" roles="manager-gui"/>

十、常见问题解决

1. 无法访问管理后台

解决方法:

  • 确保已在 tomcat-users.xml 中配置了用户和角色
  • 检查防火墙设置,确保端口未被阻塞

2. 服务无法启动或立即停止

解决方法:

  • 检查日志文件 $CATALINA_HOME/logs/catalina.out,查看具体错误信息
  • 确认 JAVA_HOMECATALINA_HOME 设置正确
  • 检查端口是否被占用

http://www.kler.cn/a/395099.html

相关文章:

  • 【YashanDB知识库】jdbc查询st_geometry类型的数据时抛出YAS-00101错误
  • C/C++圣诞树
  • 利用.NET Upgrade Assitant对项目进行升级
  • Python入门:4.Python中的运算符
  • Bluetooth Spec【0】蓝牙核心架构
  • ansible play-book玩法
  • 网上商城开发:Spring Boot技术指南
  • 【uiautomator】自动化测试camera【一】
  • 【视觉SLAM】2-三维空间刚体运动的数学表示
  • 安全见闻-泷羽sec课程笔记
  • Mysql-DDL语句
  • Leetcode 968-监控二叉树
  • LVDS高速背板总线:打造分布式I/O高效数据传输新境界
  • SHA-256哈希函数
  • 国信证券造访图为科技,共探科技与资本交融新契机
  • 【2024软考架构案例题】你知道什么是 RESTful 风格吗?
  • python-有关等差数列的基础知识
  • Unity图形学之Shader2.0 Blurning
  • 《深度学习》VGG网络
  • 【算法】区间DP
  • A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持
  • King3399(ubuntu文件系统)wifi设备树分析
  • 学习日志009--面向对象的编程
  • 前后端、网关、协议方面补充
  • 41页PPT | 华为业务流程架构全景视图:全业务域L1-L3级流程全案
  • python中父类和子类继承学习