在线部署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 .bashrcJAVA_HOME=/usr/local/java/jdk1.8.0_391
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATHsource .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/minioExecStartPre=/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.1rm -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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【零基础学习01】嵌入式linux驱动中pinctrl和gpio子系统实现

大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。 今天给大家分享一下,linux系统里面pinctrl和gpio子系统控制实验,操作硬件为I.MX6ULL开发板。 第一:pinctrl和gpio子系统简介 Linux系统是一个庞大又完善的系统,如果采用…

Day19:信息打点-红蓝队自动化项目资产侦察武器库部署企查产权网络空间

目录 各类红蓝队优秀工具项目集合 自动化-武器库部署-F8x 自动化-网络空间-AsamF 自动化-企查信息-ENScan 自动化-综合架构-ARL&Nemo 思维导图 章节知识点 Web&#xff1a;语言/CMS/中间件/数据库/系统/WAF等 系统&#xff1a;操作系统/端口服务/网络环境/防火墙等 应…

DataFunSummit 2023:洞察现代数据栈技术的创新与发展(附大会核心PPT下载)

随着数字化浪潮的推进&#xff0c;数据已成为企业竞争的核心要素。为了应对日益增长的数据挑战&#xff0c;现代数据栈技术日益受到业界的关注。DataFunSummit 2023年现代数据栈技术峰会正是在这样的背景下应运而生&#xff0c;汇聚了全球数据领域的精英&#xff0c;共同探讨现…

多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测

多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测 目录 多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.多维时序 …

JVM的工作流程

目录 1.JVM 简介 2.JVM 执行流程 3. JVM 运行时数据区 3.1 堆&#xff08;线程共享&#xff09; 3.3 本地方法栈&#xff08;线程私有&#xff09; 3.4 程序计数器&#xff08;线程私有&#xff09; 3.5 方法区&#xff08;线程共享&#xff09; 4.JVM 类加载 ① 类…

蓝桥杯大赛软件python赛道真题:蛇形填数

真题链接&#xff1a;https://www.lanqiao.cn/problems/594/learning/ 题目描述&#xff1a; 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff0c;小明用从1开始的正整数“蛇形”填充无限大的矩阵。 1 2 6 …

最简单的基于 FFmpeg 的内存读写的例子:内存转码器

最简单的基于 FFmpeg 的内存读写的例子&#xff1a;内存转码器 最简单的基于 FFmpeg 的内存读写的例子&#xff1a;内存转码器正文源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的内存读写的例子&#xff1a;内存转码器 参考雷霄骅博士的文章&#xff0c;链接&#xf…

【脚本玩漆黑的魅影】全自动丢球

文章目录 原理全部代码 原理 启动后截图。 丢球以后再截图。 如果两图一致&#xff0c;说明没成功&#xff0c;读档重来。 如果两图不一致&#xff0c;说明成功了。 while True:press(A)time.sleep(2)if is_same_img(ImageGrab.grab(), data_img):press(save2)else:break全部…

让Putty支持Tab页(多连接管理)

让Putty支持Tab页&#xff08;多连接管理&#xff09; 1 介绍2 PuTTY缺陷3 支持Tab页4 支持用户名和密码保存 1 介绍 PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。PuTTY为一开放源代码软件&#xff0c;主要由Simon Tatham维护&#xff0c;使用MIT licence授权…

Redis特性与应用场景

Redis是一个在内存中存储数据的中间件&#xff0c;用于作为数据库&#xff0c;用于作为数据缓存&#xff0c;在分布式系统中能够发挥重要作用。 Redis的特性 1.In-memory data structures: MySQL使用表的方式存储数据&#xff0c;这意味着数据通常存储在硬盘上&#xff0c;并且…

JavaEE进阶(15)Spring原理:Bean的作用域、Bean的生命周期、Spring Boot自动配置(加载Bean、SpringBoot原理分析)

接上次博客&#xff1a;JavaEE进阶&#xff08;14&#xff09;Linux基本使用和程序部署&#xff08;博客系统部署&#xff09;-CSDN博客 目录 关于Bean的作用域 概念 Bean的作用域 Bean的生命周期 源码阅读 Spring Boot自动配置 Spring 加载Bean 问题描述 原因分析 …

IM6ULL学习总结(四-七-1)输入系统应用编程

第7章 输入系统应用编程 7.1 什么是输入系统 ⚫ 先来了解什么是输入设备&#xff1f; 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。 ⚫ 什么是输入系统&#xff1f; 输入设备种类繁多&#xff0c;能否统一它们的…