在线部署ubuntu20.04服务器,安装jdk、mysql、redis、nginx、minio、开机自启微服务jar包

一、服务器

1、查看服务器版本

 查看服务器版本为20.04
lsb_release -a

2、服务器信息

服务器初始账号密码 sxd / 123456

首先,更改自身密码都输入123456

sudo passwd

 创建最高权限root账号,密码为 123456

su root

3、更新服务器源

1、更新源列表 

sudo apt-get update

2、安装 openssh-server和vim

途中输入y

sudo apt-get install openssh-server
apt install vim

 安装ssh后可通过ssh软件连接服务器,首先获取自身ip为192.168.220.143

ip a

3、通过finalshell连接服务器 

登录ssh后将用户切换到root用户

su root

4、默认创建文件夹权限

使创建的文件夹默认权限为读写,编辑bashrc

vim ~/.bashrc

 

 source ~/.bashrc

 

软件安装

1、安装jdk

下载以及配置

cd /usr/local/
mkdir java
cd java/

上传jdk-8u391-linux-x64.tar.gz或者 下载jdk

wget https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u401-b10/4d245f941845490c91360409ecffb3b4/jdk-8u401-linux-x64.tar.gz

 

 由于下载版本不同,根据版本更改文件夹名称

#解压jdk
tar -zxvf  jdk-8u391-linux-x64.tar.gz
#配置环境变量
chmod 777 /etc/profile
vim /etc/profile

在最后一行输入以下内容

JAVA_HOME=/usr/local/java/jdk1.8.0_391
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

 执行命令并查看jdk版本是否安装成功

source /etc/profile
java -version

 设置jdk开机自动识别

cd ~
vim .bashrc

JAVA_HOME=/usr/local/java/jdk1.8.0_391
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source .bashrc

2、安裝mysql8.0

安装并且启动

#安装mysql
sudo apt-get install mysql-server
#获取mysql状态
service mysql status
#停止mysql
service mysql stop
#启动mysql
service mysql start
#开机自启mysql
systemctl enable mysql

进入mysql,需要密码的话回车跳过

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
#更改root连接权限
use mysql;
update user set host='%' where user = 'root';
flush privileges;

配置mysq连接

设置mysql允许其他用户访问,打开文件注释掉bind-address=127.0.0.1

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

 设置模式



sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 重启mysql服务

service mysql restart

 通过数据连接软件测试数据库是否连接成功

3、安装redis

下载及配置

#下载并解压压缩包
cd /usr/local
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxvf redis-6.2.6.tar.gz
mv redis-6.2.6 redis
cd redis
#安装编译环境
sudo apt install build-essential -y
sudo make -j4
#安装redis 
sudo make PREFIX=/usr/local/redis install
#设置redis文件权限
 chmod -R 777 /usr/local/redis

如果执行命令 sudo make 出现错误:

cd src && make all
make[1]: 进入目录“/usr/local/redis-7.0.10/src”
    CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: 没有那个文件或目录
   50 | #include <jemalloc/jemalloc.h>
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:403:adlist.o] 错误 1
make[1]: 离开目录“/usr/local/redis-7.0.10/src”
make: *** [Makefile:6:all] 错误 2


 针对上述错误,执行如下命令重新编译。

sudo make MALLOC=libc

执行如下命令将 redis-server 和 redis-cli 放置到系统路径(/usr/bin)下。

ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli
ln -s /usr/local/redis/bin/redis-server /usr/bin/redis-server

设置redis配置文件 vim redis.conf

#(1)修改 1
# 注释掉 bind 127.0.0.1 -::1 允许远程连接
#bind 127.0.0.1 -::1
bind 0.0.0.0
 
# (2)修改2
# 将 daemonize no 修改为 daemonize yes,设置后台运行
daemonize yes
 
# (3)修改3
# 指定 log 文件路径
logfile "/var/log/redis-server.log"

 

#启动redis服务
sudo redis-server /usr/local/redis/redis.conf
#查看redis是否运行
ps -ef | grep redis

启动客户端,执行指令如果设置了密码  执行auth  +密码再执行

开机自启动

拷贝启动脚本  redis_init_script 到目录 /etc/init.d/redis 下,并编辑配置文件。

sudo cp /usr/local/redis/utils/redis_init_script /etc/init.d/redis
vim /etc/init.d/redis

创建配置文件,使其开机自启

sudo mkdir /etc/redis
sudo cp /usr/local/redis/redis.conf /etc/redis/6379.conf
sudo update-rc.d -f redis defaults
systemctl start redis
systemctl status redis

通过redis客户端软件测试

4、安裝minio

下载及配置

# 创建minio应用程序目录
mkdir -p  /usr/local/minio/bin
# 创建minio数据目录
mkdir -p  /usr/local/minio/data
# 创建minio日志目录
mkdir -p  /usr/local/minio/logs
#将软件下载
cd /usr/local/minio/bin
# 下载服务端
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# 将下载所得minio文件拷贝到指定文件夹并赋权
sudo chmod +x /usr/local/minio/bin/minio
测试执行minio
MINIO_ROOT_USER=myname 
MINIO_ROOT_PASSWORD=mypassword
nohup  /usr/local/minio/bin/minio server  /usr/local/minio/data --console-address ":7047" --address ":7048" >  /usr/local/minio/logs/minio.log 2>&1 &
sudo minio server /usr/local/minio/data --console-address ":7047" --address ":7048" >  /usr/local/minio/logs/minio.log 2>&1 &

配置minio

创建minio配置文件
sudo vim /etc/default/minio
# 指定数据存储目录(注意:这个目录要存在且拥有相对应的权限)
MINIO_VOLUMES="/usr/local/minio/data"

# 监听端口
MINIO_OPTS="--address :7048 --console-address :7047"


# 新版本使用;指定默认的用户名和密码,其中用户名必须大于3个字母,否则不能启动
MINIO_ROOT_USER="myname"
MINIO_ROOT_PASSWORD="mypassword"

# 区域值,标准格式是“国家-区域-编号”,
MINIO_REGION="cn-north-1"

创建服务

sudo vim /usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/minio/bin/minio
[Service]
WorkingDirectory=/usr/local/minio/

ProtectProc=invisible

# 指向3.1节中的配置文件
EnvironmentFile=/etc/default/minio

ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum (1M) file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
SuccessExitStatus=0

[Install]
WantedBy=multi-user.target
Alias=minio.service

通过systemctl将服务生效并启动服务

# 重新加载服务配置文件,使服务生效
systemctl daemon-reload

# 将服务设置为开机启动
systemctl enable minio

# 服务立即启动
systemctl start minio

# 查看minio服务当前状态
systemctl status minio

点击Create Bucket并输入teaching

 进入teaching,点击Access Policy设置成public,点击Anonymous 设置下图可读写

5、安装nacos

下载nacos

速度比较慢

/usr/local
wget https://github.com/alibaba/nacos/releases/download/2.3.1/nacos-server-2.3.1.tar.gz
mv nacos-server-2.3.1 nacos
#设置nacos文件夹权限
chmod -R 777 /usr/local/nacos

#创建nacos服务
sudo vim /usr/lib/systemd/system/nacos.service

 文件配置

[Unit]
Description=nacos
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone  
ExecReload=/usr/local/nacos/bin/shutdown.sh  			 
ExecStop=/usr/local/nacos/bin/shutdown.sh 		 	  	
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

配置nacos启动项配置

vim /usr/local/nacos/bin/startup.sh

 将修改jdk配置并注释其他三行

调用nacos服务

systemctl daemon-reload # 重新加载服务配置
systemctl enable nacos.service # 设置为开机启动
systemctl is-enabled nacos.service # 查看是否开机启动
systemctl start nacos.service # 启动nacos服务
systemctl stop nacos.service # 停止nacos服务
systemctl status nacos.service # 查看nacos服务状态

访问 http://192.168.220.143:8848/nacos

6、安装nginx

安装所需编译包

cd /usr/local
#安装编译用的组件包
sudo apt-get install libxml2-dev build-essential openssl libssl-dev make curl libcurl4-gnutls-dev libjpeg-dev libpng-dev libtool-bin bison zlib1g-dev libpcre3 libpcre3-dev libssl-dev libxslt1-dev libgeoip-dev libgoogle-perftools-dev libperl-dev libtool
#从远程下载文件
c
#解压文件到 /usr/local  目录
tar -xvf nginx-1.20.1.tar.gz -C /usr/local
cd /usr/local/nginx-1.20.1
#进入目录并执行命令 
sudo ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \--with-http_stub_status_module \--with-http_ssl_module \--with-file-aio \--with-http_realip_module
 
#创建临时目录  
mkdir /var/temp/nginx -p
 
#进行编译和安装
cd /usr/local/nginx-1.20.1
sudo make
sudo make install

#安装结束后可删除nginx-1.20.1
 rm -rf /usr/local/nginx-1.20.1
cd /usr/local/nginx
#安装后目录为 /usr/local/nginx   

创建pid文件

mkdir  /usr/local/nginx/logs
touch nginx.pid

 配置nginx pid文件,將pid改为

pid        /usr/local/nginx/logs/nginx.pid;

vim /usr/local/nginx/conf/nginx.conf

 配置nginx服务


vim /etc/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
#请确认相关命令是否可执行
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target
 

#重载系统服务
systemctl daemon-reload
#测试 服务是否生效   
systemctl  start  nginx.service  
 
# 设置服务为开机启动服务  
systemctl enable nginx.service
 
#开机服务查询
systemctl list-units --type=service

7、开机自启jar包

1、创建脚本

cd /etc/init.d/
vim startServer.sh

2、脚本配置项 

nohup java -jar /opt/web/a.jar &
nohup java -jar /opt/web/a.jar &
tail -f /opt/web/nohup.out
echo "---------TeachingServer is running"

3、赋予脚本权限:

chomd 755 /etc/init.d/startServer.sh

4、添加到启动脚本中,在init.d目录下执行

update-rc.d startServer.sh defaults 90

 如果需要移除输入update-rc.d startServer.sh remove

5.重启生效

reboot

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

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

相关文章

【golang】Windows与Linux交叉编译保姆级教程

【golang】Windows与Linux交叉编译 大家好 我是寸铁&#x1f44a; 总结了一篇【golang】Windows与Linux交叉编译的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 问题背景 今天寸铁想将Windows中的程序部到Linux下跑&#xff0c;我们知道在从Windows与Linux下要进行交叉编译…

11、Linux-安装和配置Redis

目录 第一步&#xff0c;传输文件和解压 第二步&#xff0c;安装gcc编译器 第三步&#xff0c;编译Redis 第四步&#xff0c;安装Redis服务 第五步&#xff0c;配置Redis ①开启后台启动 ②关闭保护模式&#xff08;关闭之后才可以远程连接Redis&#xff09; ③设置远程…

Java基础 - 8 - 算法、正则表达式、异常

一. 算法 什么是算法&#xff1f; 解决某个实际问题的过程和方法 学习算法的技巧&#xff1f; 先搞清楚算法的流程&#xff0c;再直接去推敲如何写算法 1.1 排序算法 1.1.1 冒泡排序 每次从数组中找出最大值放在数组的后面去 public class demo {public static void main(S…

21 easy 1. 两数之和

//给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 // // 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 // // 你可以…

java Spring boot简述jetcache 并叙述后续文章安排

我们之前 讲了 Spring boot 整合 cache 使用 simple(默认) redis Ehcache memcached的几种方式 但是 始终有人觉得不够完善 提出了一些问题 例如 觉得 当前spring boot 对缓存过期的控制过于松散 不严谨 比较明显的体现就是 memcached过期时间在逻辑代码中控制 Ehcache的过期时…

Tomcat的安装

下载Tomcat&#xff08;这里以Tomcat8.5为例&#xff09; 直接进入官网进行下载&#xff0c;Tomcat官网 选择需要下载的版本&#xff0c;点击下载这里一定要注意&#xff1a;下载路径一定要记住&#xff0c;并且路径中尽量不要有中文&#xff01;&#xff01;&#xff01;&…

Prompt Engineering、Finetune、RAG:OpenAI LLM 应用最佳实践

一、背景 本文介绍了 2023 年 11 月 OpenAI DevDay 中的一个演讲&#xff0c;演讲者为 John Allard 和 Colin Jarvis。演讲中&#xff0c;作者对 LLM 应用落地过程中遇到的问题和相关改进方案进行了总结。虽然其中用到的都是已知的技术&#xff0c;但是进行了很好的总结和串联…

神经网络的矢量化,训练与激活函数

我们现在再回到我们的神经元部分&#xff0c;来看我们如何用python进行正向传递。 单层的正向传递&#xff1a; 我们回到我们的线性回归的函数。我们每个神经元通过上述的方法&#xff0c;就可以得到我们的激发值&#xff0c;从而可以继续进行下一层。 我们用这个方法就可以得…

排序算法的对比

类别排序方法时间复杂度空间复杂度稳定性平均情况特殊情况 插入 排序 插入排序基本有序最优稳定希尔排序不稳定 选择 排序 选择排序不稳定堆排序不稳定 交换 排序 冒泡排序稳定快速排序基本有序最差不稳定归并排序稳定基数排序稳定

0环PEB断链实现

截止到昨天那里我们的思路就清晰了&#xff0c;通过EPROCESS找到我们要隐藏的进程的ActiveProcessLinks&#xff0c;将双向链表的值修改&#xff0c;就可以将我们想要隐藏的这个进程的ActiveProcessLinks从双向链表中抹去的效果&#xff0c;这里的话如果在windbg里面直接使用ed…

用Python实现一个简单的——人脸相似度对比

近几年来&#xff0c;兴起了一股人工智能热潮&#xff0c;让人们见到了AI的能力和强大&#xff0c;比如图像识别&#xff0c;语音识别&#xff0c;机器翻译&#xff0c;无人驾驶等等。总体来说&#xff0c;AI的门槛还是比较高&#xff0c;不仅要学会使用框架实现&#xff0c;更…

Day33|贪心算法part3

k次取反后最大的数组元素和 思路&#xff1a;贪心&#xff0c;局部最优&#xff0c;让绝对值大的负数变正数&#xff0c;当前数值达到最大&#xff0c;整体最优&#xff1b;整个数组和达到最大。如果把序列中所有负数都转换为正数了&#xff0c;k还没耗尽&#xff0c;就是k还大…

AWS的CISO:GenAI只是一个工具,不是万能钥匙

根据CrowdStrike的年度全球威胁报告,尽管研究人员预计人工智能将放大对防御者和攻击者的影响,但威胁参与者在其行动中使用人工智能的程度有限。该公司上个月在报告中表示:“在整个2023年,很少观察到GenAI支持恶意计算机网络运营的开发和/或执行。” 对于GenAI在网络安全中的…

Python:在 Ubuntu 上安装 pip的方法

目录 1、检测是否已安装pip 2、更新软件源 3、安装 4、检测是否安装成功 pip和pip3都是Python包管理工具&#xff0c;用于安装和管理Python包。 在Ubuntu上&#xff0c;pip和pip3是分别针对Python2和Python3版本的pip工具。 pip3作用&#xff1a;自动下载安装Python的库文…

2024年HW技术总结

我们都知道&#xff0c; 护网行动 是国家应对网络安全问题所做的重要布局之一。至今已经是8个年头了&#xff0c;很多公司在这时候人手不够&#xff0c;因此不得不招募一些网安人员来参加护网。 红队 扮演攻击的角色&#xff0c;蓝队 扮演防守、溯源的角色&#xff0c;紫队当然…

Java 的 System 类常用方法介绍

Java 中的 System 类是一个final类&#xff0c;它提供了与系统相关的属性和方法。它是一个内置的类&#xff0c;可以直接使用&#xff0c;不需要实例化。System 类提供了标准输入、标准输出和错误输出流&#xff0c;以及对外部定义的属性和系统环境的访问。下面是 System 类的一…

如何在Android 上查找恢复删除/隐藏的照片?5 个值得尝试的方法分享

Android 设备上的删除/隐藏图像有多种用途&#xff0c;无论是保护隐私还是优化存储空间。然而&#xff0c;在某些情况下&#xff0c;用户可能由于意外隐藏、删除或仅仅是出于好奇而需要取消删除/隐藏这些照片。在这种情况下&#xff0c;了解如何在 Android 上查找删除/隐藏的照…

Sora的新商业视角:从生态构建到未来产业协同

在科技飞速发展的当下&#xff0c;人工智能与机器学习不仅重塑了我们的生活方式&#xff0c;还深刻地改变了商业模式的构建方式。Sora&#xff0c;作为一款前沿的AI视频生成工具&#xff0c;其盈利路径和未来产业协同的可能性值得深入探讨。 Sora学习资料&#xff1a;使用方式…

LabVIEW智能Modbus监控系统

LabVIEW智能Modbus监控系统 在自动化和信息化迅速发展下&#xff0c;传统的监控系统已无法满足现代工业对于数据通讯和处理的高效率和高可靠性要求。为了解决这一问题&#xff0c;设计了一套基于LabVIEW的智能Modbus监控系统。该系统利用LabVIEW的图形化编程环境和Modbus协议的…

Java jdk 21 安装

下载软件 https://www.oracle.com/hk/java/technologies/downloads/#jdk21-windows x64 MSI Installer&#xff1a; https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.msi 获取JRE 用旧版Java的&#xff0c;不一定会知道这一个步骤 创建JRE命令&#xff…