Linux 环境安装操作

本文详细介绍了如何安装 Hotspot Java 8 并进行环境配置,接着演示了 Maven 和 Tomcat 的安装过程。特别地,文章深入探讨了如何在一台服务器上部署多个 Tomcat 实例,以及如何通过 systemd 进行服务管理和配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:Hotspot Java 8 的安装(JDK)

1.1: 卸载其他版本
卸载其他所有版本,包括 OpenJDK 所有版本、Hotspot 非预期版本。

rpm -qa | grep -E "^jdk|openjdk" | sort ## 查看 OpenJDK 相关组件
sudo yum -y remove jdk1.8.0_111-1.8.0_111-fcs.x86_64
sudo yum -y remove java*openjdk* ## 卸载 OpenJDK

1.2 :下载
首页: http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
原链: http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm

## 参考: https://stackoverflow.com/questions/10268583/
wget --header "Cookie: oraclelicense=accept-securebackup-cookie" \
     http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm

1.3 :安装 Hotspot 版本

sudo yum -y install jdk-8u161-linux-x64.rpm ## 安装 Hotspot
dirname `sudo find /usr/java -name src.zip` # 获取 JAVA_HOME
## sudo vim /etc/profile ## 所有用户有效
export JAVA_HOME=/usr/java/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
## 环境变量 CLASSPATH 已废弃

编辑profile文档立即生效 source /etc/profile

检查

## java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

1.4: 配置

## sudo vim $JAVA_HOME/jre/lib/logging.properties ## 日志配置

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format = %1$tT,%1$tL  %4$s  [%3$s] - %5$s%6$s%n

2: Maven安装

2.1 下载与安装(9M)

### http://maven.apache.org/download.cgi
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
sudo tar -zxf apache-maven-3.5.2-bin.tar.gz -C /opt
sudo ln -sf /opt/apache-maven-3.5.2/bin/mvn /usr/bin/mvn

2.2 设置

## sudo vim /etc/profile ## 所有用户有效
export MAVEN_HOME=/opt/apache-maven-3.5.2
export PATH=$PATH:$MAVEN_HOME/bin

3 安装 Tomcat

选择 Tomcat7 的原因:

  • Tomcat9: 首个 beta 版本刚刚发布(2017-11-15),不稳定;
  • Tomcat8.5: 不支持第三方组件 redis sessions manager;
  • Tomcat8.0: 支持 redis session manager,但官方声明即将结束支持(2018年6月30日);
  • Tomcat7.0: 支持 redis session manager,且无结束支持的声明。

3.1 下载与安装(9M)

## https://tomcat.apache.org/download-80.cgi
## http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82-windows-x64.zip
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz
sudo tar -zxf apache-tomcat-7.0.82.tar.gz -C /opt

3.2 用户配置

## sudo vim /etc/profile ## 所有用户有效
export CATALINA_HOME=/opt/apache-tomcat-7.0.82 ## bin,lib
## export CATALINA_BASE=/opt/apache-tomcat-7.0.82 ## conf,logs,webapps,work,temp
export PATH=$PATH:$CATALINA_HOME/bin

alias slg='sudo tail -f $CATALINA_BASE/logs/catalina.out'

3.3 配置 Tomcat

## sudo vim $CATALINA_BASE/conf/logging.properties ## 日志配置

1catalina.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
2localhost.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
3manager.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
4host-manager.org.apache.juli.AsyncFileHandler.formatter = org.apache.juli.OneLineFormatter

# java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter ## 屏蔽
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tT,%1$tL  %4$s  [%3$s] - %5$s%6$s%n
sudo vim $CATALINA_BASE/conf/tomcat-users.xml ## 用户
# sudo vim $CATALINA_BASE/conf/server.xml ## 服务器【修改端口为 80/443】
sudo sed -i 's/8080/80/g' $CATALINA_BASE/conf/server.xml
sudo sed -i 's/8443/443/g' $CATALINA_BASE/conf/server.xml
sudo vim $CATALINA_BASE/conf/context.xml ## 站点
## sudo vim $CATALINA_BASE/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelOldGC -Xms512M -Xmx512M -Xmn256M -XX:SurvivorRatio=8 -XX:PermSize=64M -XX:MaxPermSize=128M"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:$CATALINA_BASE/logs/gc.log"
CATALINA_OUT=/dev/nul

3.4 脚本

sudo mkdir $CATALINA_HOME/bin/batch/
sudo mv $CATALINA_HOME/bin/*.bat $CATALINA_HOME/bin/batch/

sudo $CATALINA_HOME/bin/version.sh  ## 查看系统版本、JDK、Tomcat 版本
sudo $CATALINA_HOME/bin/shutdown.sh ## 停止服务
sudo $CATALINA_HOME/bin/startup.sh  ## 启动服务
## curl http://localhost/

3.5 日志

sudo chmod 755 $CATALINA_BASE/logs
sudo chmod 644 $CATALINA_BASE/logs/*
sudo tail -f $CATALINA_BASE/logs/catalina.out
sudo tail -f $CATALINA_BASE/logs/catalina.`date +%Y-%m-%d`.log
sudo tail -f $CATALINA_BASE/logs/localhost.`date +%Y-%m-%d`.log
sudo tail -f $CATALINA_BASE/logs/localhost_access_log.`date +%Y-%m-%d`.txt

3.6 防火墙放行(直接对外服务时才需要)

### sudo vim /etc/sysconfig/iptables
### 重启生效: sudo systemctl restart iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEP

3.7 配置为 systemd 服务

## sudo vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat
After=syslog.target network.target

[Service]
Type=forking
Environment="CATALINA_HOME=/opt/apache-tomcat-7.0.82"
Environment="CATALINA_BASE=/opt/apache-tomcat-7.0.82"
ExecStart=/opt/apache-tomcat-7.0.82/bin/startup.sh
ExecStop=/opt/apache-tomcat-7.0.82/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable tomcat # 设置为开机自动启动
sudo systemctl start tomcat # 立即启动

4 Tomcat 单机多实例

  • 与 MySQL 单机多实例类似,Tomcat 的单机多实例,也是指单个 Linux 的单个 Tomcat 安装,启动多个 Tomcat
    服务进程,分别监听不同的端口,对外提供不同的 HTTP 服务。

4.1 关键点 Tomcat 有两个相关的环境变量:

CATALINA_HOME: 是 Tomcat 的安装目录,所有实例共用一份,相关子目录是 bin|lib;
CATALINA_BASE: 是 Tomcat 的工作目录,各个实例各自一份,相关子目录是 conf|webapps|work|logs|temp;
对于单实例,只需设置 CATALINA_HOME(此时认为 CATALINA_BASE 取相同值),多实例才必须设置 CATALINA_BASE。

4.2 准备各实例

4.2.1 准备实例目录

sudo systemctl stop tomcat
sudo systemctl disable tomcat
sudo cp -R $CATALINA_HOME $CATALINA_HOME.bak

sudo mkdir -p $CATALINA_HOME@{1,2}/{logs,temp,webapps,work}
sudo cp -R $CATALINA_HOME/{conf} $CATALINA_HOME@1/
sudo mv -f $CATALINA_HOME/{conf} $CATALINA_HOME@2/

4.2.2 替换各实例的监听端口

  • HTTP 端口 8080 分别替换为 8081/8082
  • HTTPS 端口 8443 分别替换为 8031/8032
  • SHUTDOWN 端口 8005 分别替换为 8051/8052
  • AJP 端口 8009 分别替换为 8091/8092(也可以直接删除该配置)
sudo sed -i 's/8080/8081/g' $CATALINA_HOME@1/conf/server.xml
sudo sed -i 's/8080/8082/g' $CATALINA_HOME@2/conf/server.xml

sudo sed -i 's/8443/8031/g' $CATALINA_HOME@1/conf/server.xml
sudo sed -i 's/8443/8032/g' $CATALINA_HOME@2/conf/server.xml

sudo sed -i 's/8005/8051/g' $CATALINA_HOME@1/conf/server.xml
sudo sed -i 's/8005/8052/g' $CATALINA_HOME@2/conf/server.xml

sudo sed -i 's/8009/8091/g' $CATALINA_HOME@1/conf/server.xml
sudo sed -i 's/8009/8092/g' $CATALINA_HOME@2/conf/server.xml

# sudo sed -i '/8009/d' $CATALINA_HOME@1/conf/server.xml
# sudo sed -i '/8009/d' $CATALINA_HOME@2/conf/server.xml

4.2.3 调整 JVM 参数
由于 Tomcat 实例数目增多,需要规划 JVM 内存容量,否则可能因为指定的容量过大而启动失败。

sudo vim $CATALINA_HOME/bin/catalina.sh

4.3 配置各实例的服务

4.3.1 创建多实例 service 文件
环境变量 JAVA_OPTS 与 CATALINA_OPTS 的区别:

  • JAVA_OPTS: 所有Java程序共用(包括Tomcat),Tomcat 执行 start/run/stop 时用到;
  • CATALINA_OPTS: 仅仅Tomcat用到,Tomcat 执行 start/run 时用到(不包括 stop);

所以,最佳方式是使用环境变量 CATALINA_OPTS,只影响 Tomcat 的启动选项。

## sudo vim /usr/lib/systemd/system/tomcat@.service
## 其中的 %i 将来会被替换为具体的 1/2
[Unit]
Description=Apache Tomcat
After=syslog.target network.target

[Service]
Type=forking
Environment="CATALINA_HOME=/opt/apache-tomcat-7.0.82"
Environment="CATALINA_BASE=/opt/apache-tomcat-7.0.82@%i"
ExecStart=/opt/apache-tomcat-7.0.82/bin/startup.sh
ExecStop=/opt/apache-tomcat-7.0.82/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

4.3.2 设置为开机自动运行

sudo systemctl daemon-reload
sudo systemctl enable tomcat@{1,2}
sudo systemctl start tomcat@{1,2}

## curl http://localhost:8081/check.htm
## curl http://localhost:8082/check.htm

## sudo systemctl stop tomcat@{1,2}
## sudo systemctl disable tomcat@{1,2}

4.4 实用脚本

## vim ~/bin/tomcat-start.sh
sudo rm -rf $CATALINA_HOME*/logs/*
sudo systemctl start tomcat@{1,2}
## vim ~/bin/tomcat-stop.sh
sudo systemctl stop tomcat@{1,2}
## vim ~/bin/tomcat-restart.sh
sudo rm -rf $CATALINA_HOME*/logs/*
sudo systemctl restart tomcat@{1,2}
## vim ~/bin/tomcat-see.sh
sudo jps -lvm | grep Bootstrap | grep -v grep

5. zookeeper

5.1 zookeeper安装

5.1.1. 首先可以从Zookeeper的官方网站下载最新的安装包: http://www.apache.org/dist/zookeeper/
5.1.2. 上传并解压: tar -xzvf zookeeper-3.4.13.jar
5.1.3. 修改环境变量: vi /etc/profile 在文件最后添加:

export ZOOKEEPER_HOME=/home/zookeeper/zookeeper-3.4.13
export PATH=$PATH:$ZOOKEEPER_HOME/bin
保存执行命令:  source /etc/profile ,使环境变量生效

5.1.4. 修改zookeeper的配置文件

cp zoo_sample.cfg  zoo.cfg
vim zoo.cfg

conf/zoo.cfg 文件中增加

dataDir=/home/zookeeper/zookeeper-3.4.13/data
dataLogDir=/home/zookeeper/zookeeper-3.4.13/logs
clientPort=2181  //端口设置

5.1.5. 操作zookeeper

zkServer.sh  start   //启动zk,
zkServer.sh status   //查看启动zk状态
zkServer.sh  stop    //停止zk

5.2.添加服务、设置开机启动
5.2.1. 以root用户登录系统
5.2.2. 进入init.d文件夹

cd /etc/init.d/

5.2.3. 创建并打开zookeeper文件

vim zookeeper

zookeeper文件如下:

#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/usr/local/jdk1.7  //JDK路径
export PATH=$JAVA_HOME/bin:$PATH
export ZK_HOME=/usr/local/zookeeper-3.4.9/bin // zookeeper路径
case $1 in
         start) su root $ZK_HOME/zkServer.sh start;; 
         stop) su root $ZK_HOME/zkServer.sh stop;;
         status) su root $ZK_HOME/zkServer.sh status;;
         restart) su root $ZK_HOME/zkServer.shrestart;;
         *)  echo "requirestart|stop|status|restart"  ;;
esac

保存退出

5.2.4. 加权限,把 zookeeper修改为可运行的文件,命令参考如下:

chmod 755 zookeeper
chmod a+x zookeeper

5.2.5. 使用chkconfig命令把 zookeeper命令加入到系统启动队列中:

chkconfig --add zookeeper

5.2.6. 查看zookeeper的状态:

chkconfig --list zookeeper

5.2.7.测试:

service zookeeper start
service zookeeper stop
service zookeeper restart
service zookeeper status
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值