Linux环境在非root用户中搭建(java-tomcat-redis)

注: 本文在内网(离线)环境,堡垒机中搭建,服务器不同可能有所差异,仅供参考

本文安装JDK-20.0.1版本,apache-tomcat-10.1.10版本,redis-6.2.15版本

本文服务器IP假设:192.168.88.133

root用户创建子用户并赋予sudo权限

创建子用户-asia

sudo  adduser  asia

给子用户赋予sudo权限

使用root用户编辑 /etc/sudoers配置文件

vi  /etc/sudoers

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
asia    ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
asia    ALL=(ALL)        NOPASSWD: ALL       

在sudoers文件中找到上面两个位置,一个是sudo权限,另一个是使用是不用输入密码

编辑后按ESC键,输入 :wq!,强制保持退出

切换asia用户

安装jdk-20.0.1

创建目录

mkdir -p 父目录/子目录

压缩包(jdk-20.0.1.tar.gz)放到java目录下:/home/asia/usr/local/java

解压jdk


解压
tar  -zxvf  jdk-20.0.1.tar.gz  /home/asia/usr/local/java

配置环境

输入nano ~/.bashrc进入配置文件
加入配置:
export JAVA_HOME=/home/asia/usr/local/java/jdk-20.0.1
export PATH=$JAVA_HOME/bin:$PATH
编辑后:Ctrl+O  保持文件
        按ENTER确认
        Ctrl+X 退出编辑
刷新配置文件 命令:source  ~/.bashrc

一开始没有配置sudo权限,所以这样配置的环境,不影响使用

查看版本

输入命令:java -version 
[asia@localhost ~]$ java -version
openjdk version "20.0.1" 2023-04-18
OpenJDK Runtime Environment (build 20.0.1+9-29)
OpenJDK 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)
[asia@localhost ~]$ 
显示20.0.1是jdk版本代表成功!

安装TomCat

创建目录

mkdir -p 父目录/子目录

压缩包(apache-tomcat-10.1.10.tar.gz)放到java目录下:/home/asia/usr/local/tomcat

解压tomcat

cd到/home/asia/usr/local/tomcat
解压 tar  -zxvf  apache-tomcat-10.1.10.tar.gz  
解压后进入tomcat的bin目录
cd /home/asia/usr/local/tomcat/apache-tomcat-10.1.10/bin
启动:./startup.sh
关闭:./shutdown.sh

启动后访问172.35.1.181:8080不能进入ManagerApp

添加tomcat用户

cd /home/asia/usr/local/tomcat/apache-tomcat-10.1.10/conf
vim tomcat-users.xml
tomcat-users.xml最下面加入以下内容:
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>

关闭tomcat服务重新启动

发现仍然无法访问ManagerApp

配置远程访问

cd  /home/asia/usr/local/tomcat/apache-tomcat-10.1.10/conf/Catalina/localhost
vi manager.xml
Manager.xml加入以下内容:
<Context privileged="true" antiResourceLocking="false"
      docBase="${catalina.home}/webapps/manager">
     <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
重启tomcat:./startup.sh
此时ManagerApp可以访问了

限制上传war包大小

上传war报错:文件太大
cd  /home/asia/usr/local/tomcat/apache-tomcat-10.1.10/webapps/manager/WEB-INF
vim web.xml
修改web.xml文件(原50MB)
  <!-- 200MB max -->
      <max-file-size>209715200</max-file-size>
      <max-request-size>209715200</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>

配置tomcat服务

sudo vim /etc/systemd/system/tomcat.service
插入:

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

[Service]
Type=forking

User=asia
Group=asia

Environment="JAVA_HOME=/home/asia/usr/local/java/jdk-20.0.1"

Environment="CATALINA_PID=/home/asia/usr/local/tomcat/apache-tomcat-10.1.10/temp/tomcat.pid"
ExecStart=/home/asia/usr/local/tomcat/apache-tomcat-10.1.10/bin/startup.sh
ExecStop=/home/asia/usr/local/tomcat/apache-tomcat-10.1.10/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

刷新配置

sudo systemctl daemon-reload

启动tomcat服务

查看进程:ps aux|grep tomcat
如果有进程就杀掉:kill -9 [Pid]

启动服务
sudo systemctl start tomcat
查看服务状态
sudo systemctl status tomcat
关闭服务
sudo systemctl stop tomcat
重启服务
sudo systemctl restart tomcat

安装redis

创建目录

mkdir -p 父目录/子目录

压缩包(redis-6.2.14.tar.gz)放到java目录下:/home/asia/usr/local/redis

解压redis

cd到 /home/asia/usr/local/redis
解压 tar  -zxvf  redis-6.2.14.tar.gz  
(此处解压后的redis-6.2.15本文改名为redis)

编译

make
cd 到 redis
使用make PREFIX=/home/asia/usr/local/redis/redis install 

配置密码

vi redis.conf
注释掉:#bind 127.0.0.1 -::1
修改密码:requirepass Asia@88220660 (取消注释编辑密码)
打开配置,密码生效:protected-mode yes

修改脚本

cd  /home/asia/usr/local/redis/redis/utils

编辑 install_server.sh 文件以下脚本内容注释
#bail if this system is managed by systemd
#_pid_1_exe="$(readlink -f /proc/1/exe)"
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
#        echo "This systems seems to use systemd."
#        echo "Please take a look at the provided example service unit files in this #directory, and adapt and install them. Sorry!"
#        exit 1
#fi

创建服务脚本

cd  /home/asia/usr/local/redis/redis/utils

vim install_server_command.sh
插入:
sudo REDIS_PORT=6379
     REDIS_CONFIG_FILE=/home/asia/usr/local/redis/redis/redis.conf
     REDIS_LOG_FILE=/home/asia/usr/local/redis/redis/bin/redis.log
     REDIS_DATA_DIR=/home/asia/usr/local/redis/redis/bin/
     REDIS_EXECUTABLE=`command -v /home/asia/usr/local/redis/redis/bin/redis-server`
     /home/asia/usr/local/redis/redis/utils/install_server.sh

配置redis服务

vim /etc/systemd/system/redis.service

[Unit]
Description=redis-server
After=network.target

[Service]
ExecStart=/home/asia/usr/local/redis/redis/bin/redis-server /home/asia/usr/local/redis/redis/redis.conf   
ExecStop=/home/asia/usr/local/redis/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target                                                          

启动redis服务

刷新配置
sudo systemctl daemon-reload
切换asia
查看进程:ps aux|grep redis
如果有进程就杀掉:kill -9 [Pid]

启动服务
sudo systemctl start redis
查看服务状态
sudo systemctl status redis
关闭服务
sudo systemctl stop redis
重启服务
sudo systemctl restart redis

外部连接失败,因为redis运行中是受保护的模式,修改即可

redis-cli
config set protected-mode “no”
退出exit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/690020.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

stack overflow复现

当你在内存的栈中&#xff0c;存放了太多元素&#xff0c;就有可能在造成 stack overflow这个问题。 今天看看如何复现这个问题。 下图&#xff0c;是我写的程序&#xff0c;不断的创造1KB的栈&#xff0c;来看看执行了多少次&#xff0c;无限循环。 最后结果是7929kB时, 发…

Echarts 可视化图库案例(Make A Pie)

1、Made A Pie Made A Pie 2、可视化社区 &#xff08;Made A Pie 替代&#xff09; 可视化社区

标准价与移动平均价简介

一、移动平均价 移动平均价优点&#xff1a; a.移动平均价格可反应”实时的”加权平均价格,特别是物料价格涨跌幅度大时物料的价格不会被差异扭曲。 b.因为是基于交易的实时加权平均计算价格,一般情况下,移动平均价不产生差异&#xff0c;价格相对真实。 c.如果所有的物料都使用…

算法学习笔记(7.7)-贪心算法(Dijkstra算法-最短路径问题)

目录 1.最短路径问题 2.Dijkstra算法介绍 3.Dijkstra算法演示 4.Dijkstra算法的代码示例 1.最短路径问题 图论中的一个经典问题&#xff0c;通常是指在一个加权图中找到从一个起始顶点到目标顶点的最短路径。 单源最短路径问题&#xff1a;给定一个加权图和一个起始顶点&…

AI三巨擘或面临反垄断审查 | 百能云芯

据纽约时报与路透社披露&#xff0c;有内部消息人士指出&#xff0c;美国的相关监管机构已达成共识&#xff0c;计划对OpenAI、微软及英伟达在人工智能&#xff08;AI&#xff09;领域的领导地位展开反垄断审查。这一动作被视为AI监管力度加强的明显信号。 根据此项共识&#x…

matlab 计算三维空间点到直线的距离

目录 一、算法原理二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 直线的点向式方程为: x − x 0 m = y

海康威视综合安防管理平台 多处 FastJson反序列化RCE漏洞复现

0x01 产品简介 海康威视综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备。海康威视集成化综合管理软件平台,可以对接入的视频监控点集中管理,实现统一部署、统一配置、统一管理和统一调度。 0x02 漏洞概述 由于…

XR和Steam VR项目合并问题

最近有一个项目是用Steam VR开发的&#xff0c;里面部分场景是用VRTK框架做的&#xff0c;还有一部分是用SteamVR SDK自带的Player预制直接开发的。 这样本身没有问题&#xff0c;因为最终都是通过SteamVR SDK处理的&#xff0c;VRTK也管理好了SteamVR的逻辑&#xff0c;并且支…

【YOLOV8】4.图片分类-训练自己的数据集

Yolo8出来一段时间了,包含了目标检测、实例分割、人体姿态预测、旋转目标检测、图像分类等功能,所以想花点时间总结记录一下这几个功能的使用方法和自定义数据集需要注意的一些问题,本篇是第四篇,图像分类功能,自定义数据集的训练。 YOLO(You Only Look Once)是一种流行的…

【生产排查】解决 Kettle 没有运行日志的问题

文章目录 背景排查解决第 1 步:修改 kettle-service.conf,添加日志配置第 2 步:使用最新配置文件重启 kettle第 3 步:验证日志配置是否生效背景 🚀 项目使用 Kettle 作为 ETL 工具,从外部系统中抽取数据、转换数据、并最终加载到本项目的数据库中。 😂 存在的问题:据…

Vue3【十】07使用ref创建基本类型的响应式数据以及ref和reactive区别

Vue3【十】07使用ref创建基本类型的响应式数据以及ref和reactive区别 ref 也可以创建对象类型的响应式数据&#xff0c;不过要使用.value ref 处理对象数据的时候&#xff0c;底层数据还是reactive格式的 reactive 重新分配一个新对象&#xff0c;会失去响应式可以使用Object.a…

重生奇迹MU格斗家技能

格斗家有9个技能&#xff0c;其中幽冥青狼拳.斗气爆裂拳.神圣气旋.这3个是武器上带的技能。 回旋踢.幽冥光速拳.炎龙拳.这3个是买羊皮纸学的技能&#xff08;回旋踢是格斗最强技能&#xff09;。 还有3个给自己加BUFF的技能&#xff0c;斗神破&#xff08;增加无视防御的状态&…

Linux lvm卷扩容之SSM

介绍 SSM&#xff08;System Storage Manager&#xff09;是系统存储管理器&#xff0c;它是一种统一的命令行界面&#xff0c;用于管理各种存储设备。通过SSM&#xff0c;用户可以方便地管理、配置和监控存储系统。检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、…

专为Mac设计的窗口管理Magnet 中文

Magnet是一款专为Mac设计的窗口管理工具软件。它具备强大的多窗口管理能力&#xff0c;支持用户通过简单的拖放操作&#xff0c;将应用程序窗口快速对齐、排列和分组。此外&#xff0c;Magnet还提供了预设的布局选项和自定义设置功能&#xff0c;帮助用户实现个性化的窗口布局。…

Html/HTML5常用标签的学习

课程目标 项目实战&#xff0c;肯定就需要静态网页。朝着做项目方式去学习静态网页。 01、编写第一个html工程结构化 cssjsimages/imgindex.html 归档存储和结构清晰就可以。 02、HTML标签分类 认知&#xff1a;标签为什么要分类&#xff0c;原因因为&#xff1a;分门别类…

【java】速度搭建一个springboot项目

使用软件&#xff1a;IDEA&#xff0c;mysql 使用框架&#xff1a;springboot mybatis-plus druid 坑点 使用IDEA搭建一个springboot项目的时候&#xff0c;需要考虑一下IDEA版本支持的JDK版本以及maven版本。否则再构建项目&#xff0c;引入pom的时候就会报错。 需要检查…

Tongweb7重置密码优化版*(by lqw )

如图所示&#xff0c;输入初始密码是会报错的&#xff0c;说明已经修改了密码 首先我们先备份一下tongweb的安装目录&#xff0c;避免因为修改过程中出现的差错而导致tongweb无法启动&#xff1a; 备份好了之后&#xff0c;我们关闭掉tongweb。 方式一&#xff1a; Cd 到tong…

近期面试HW中级蓝问题(非常详细)零基础入门到精通,收藏这一篇就够了

01 — HW问题 1.sqlmap拿shell的原理&#xff0c;需要什么条件&#xff0c;–os-shell的原理 2.冰蝎的流量特征 3.哥斯拉的流量特征 4.如果判断一个web是s2写的 5.fastjson了解嘛&#xff1f;Log4j了解嘛&#xff1f;如何在流量中发现Log4j的攻击特征 6.HW前的准备工作…

【爬虫】使用Python爬取百度学术页面的标题、作者、摘要和关键词

目录 安装所需库编写爬虫代码解释运行脚本结果 在本文中&#xff0c;我将介绍如何使用Python编写一个网络爬虫&#xff0c;从百度学术页面提取研究论文的标题、作者、摘要和关键词。我们将使用 requests和 BeautifulSoup库来实现这一目标。 安装所需库 首先&#xff0c;确保…

【Python错误】:AttributeError: ‘generator‘ object has no attribute ‘next‘解决办法

【Python错误】&#xff1a;AttributeError: ‘generator’ object has no attribute next’解决办法 在Python中&#xff0c;生成器是一种使用yield语句的特殊迭代器&#xff0c;它允许你在函数中产生一个值序列&#xff0c;而无需一次性创建并返回整个列表。然而&#xff0c;…