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

html 复制代码
sudo  adduser  asia

给子用户赋予sudo权限

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

vi /etc/sudoers

html 复制代码
## 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

html 复制代码
解压
tar  -zxvf  jdk-20.0.1.tar.gz  /home/asia/usr/local/java

配置环境

html 复制代码
输入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权限,所以这样配置的环境,不影响使用

查看版本

html 复制代码
输入命令: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 父目录/子目录

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

解压tomcat

html 复制代码
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用户

html 复制代码
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

配置远程访问

html 复制代码
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包大小

html 复制代码
上传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服务

html 复制代码
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

刷新配置

html 复制代码
sudo systemctl daemon-reload

启动tomcat服务

html 复制代码
查看进程: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 父目录/子目录

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

解压redis

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

编译

html 复制代码
make
cd 到 redis
使用make PREFIX=/home/asia/usr/local/redis/redis install 

配置密码

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

修改脚本

html 复制代码
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

创建服务脚本

html 复制代码
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服务

html 复制代码
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服务

html 复制代码
刷新配置
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运行中是受保护的模式,修改即可

html 复制代码
redis-cli
config set protected-mode "no"
退出exit
相关推荐
masa0103 分钟前
JavaScript--JavaScript基础
开发语言·javascript
极客小张4 分钟前
基于正点原子Linux开发板的智能监控与家电控制系统设计:深度解析Video4Linux和TCP/IP技术栈
linux·运维·c++·物联网·网络协议·tcp/ip·算法
sunxunyong4 分钟前
Linux 删除文件不释放空间问题处理
大数据·linux·运维·服务器
拓端研究室TRL6 分钟前
Python用TOPSIS熵权法重构粮食系统及期刊指标权重多属性决策MCDM研究|附数据代码...
开发语言·python·重构
一只特立独行的猪6111 小时前
Java面试——集合篇
java·开发语言·面试
只对您心动1 小时前
【C高级】有关shell脚本的一些练习
linux·c语言·shell·脚本
lldhsds1 小时前
linux下的分布式Minio部署实践
linux·minio·分布式对象存储
大得3692 小时前
go注册中心Eureka,注册到线上和线下,都可以访问
开发语言·eureka·golang
讓丄帝愛伱2 小时前
spring boot启动报错:so that it conforms to the canonical names requirements
java·spring boot·后端
weixin_586062022 小时前
Spring Boot 入门指南
java·spring boot·后端