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
相关推荐
心灵彼岸-诗和远方2 分钟前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘7 分钟前
NFS服务器
运维·服务器
P.H. Infinity25 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天28 分钟前
java的threadlocal为何内存泄漏
java
caridle40 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
萧鼎43 分钟前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸44 分钟前
【一些关于Python的信息和帮助】
开发语言·python
疯一样的码农44 分钟前
Python 继承、多态、封装、抽象
开发语言·python
^velpro^1 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋31 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx