银河麒麟系统项目部署

news2025/4/25 15:09:37
使用服务器信息

软件:VMware Workstation Pro

虚拟机:ubtun 内存:20G

虚拟机连接工具: MobaXterm

Redis连接工具: RedisDesktopManager

镜像:F:\Kylin-Server-10-8.2-Release-Build09-20211104-X86_64.iso

使用软件信息

Jdk: 1.8.0_151

Apache Tomcat: 8.5.20

Redis: 6.0.5

Nginx: 1.14.2

创建文件夹,将成为软件的安装位置
mkdir  /tools/

将安装包全部上传到/tools/文件夹下 安装包有(jdk1.8 tomcat8.5.30 mysql5.7 )

rz ...

1.安装配置jdk

解压安装包

[root@localhost tools]# tar -zxvf jdk-8u151-linux-x64.tar.gz

配置环境变量

[root@localhost tools]# vim /etc/profile

将jdk的环境变量粘贴在最后一行代码的下一行(写jdk的解压安装路径,我这里是/tools/

#java environment
export JAVA_HOME=/tools/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

查看是否安装成功,首先刷新配置文件

[root@localhost tools]# source /etc/profile

查看版本(是否安装成功)

 
[root@localhost tools]# java -version

2.安装配置Tomcat

在/tools/目录下解压安装包

[root@localhost tools]# tar -zxvf apache-tomcat-8.5.20.tar.gz

进入解压好的文件夹

[root@localhost tools]# cd apache-tomcat-8.5.20/

进入配置文件

[root@localhost apache-tomcat-8.5.20]# cd conf/
[root@localhost conf]# vim server.xml

Host节点下添加

<Context docBase="" path="/" reloadable="true" source=""/>

2.1设置Tomcat自启动

进入本地目录

[root@localhost apache-tomcat-8.5.20]# cd /usr/lib/systemd/system

在这个目录下创建tomcat.service自启动配置文件

[root@localhost system]# vi tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment='JAVA_HOME=/lky/jdk1.8.0_151'
Environment='CATALINA_PID=/lky/apache-tomcat-8.5.20/tomcat.pid'
Environment='CATALINA_HOME=/lky/apache-tomcat-8.5.20/'
Environment='CATALINA_BASE=/lky/apache-tomcat-8.5.20/'
#Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'

PIDFile=/lky/apache-tomcat-8.5.20/tomcat.pid
ExecStart=/lky/apache-tomcat-8.5.20/bin/catalina.sh start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

将里面的tomcat安装位置改成我们的安装目录 lky改成/tools/(tomcat解压安装目录)

设置自启动

[root@localhost system]# systemctl enable tomcat

重载服务

[root@localhost system]# systemctl daemon-reload

重启服务

[root@localhost system]# systemctl restart tomcat

查看服务状态

[root@localhost system]# systemctl status tomcat

设置自启成功

2.2双节点配置

进入安装目录

[root@localhost system]# cd /tools/

复制一个tomcat02

[root@localhost tools]# cp -R apache-tomcat-8.5.20 tomcat02

进入tomcat02文件夹的配置文件

[root@localhost tools]# cd tomcat02/

进入配置文件夹conf

[root@localhost tomcat02]# cd conf/

修改配置文件夹,修改端口号,不然会与tomcat01端口冲突

[root@localhost conf]# vim server.xml

8005改成8006

8080改成8081

8009改成8010

修改server.xmlHost节点下添加(若依配置)

<Context docBase="" path="/" reloadable="true" source=""/>

进入tomcat02运行目录启动服务

[root@localhost conf]# cd ../bin/

启动服务

[root@localhost bin]# ./startup.sh

开放tomcat端口,两个端口号 8080 8081

[root@localhost bin]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
[root@localhost bin]# firewall-cmd --zone=public --add-port=8081/tcp --permanent

刷新防火墙

[root@localhost bin]# firewall-cmd --reload

网页测试tomcat是否可以访问

虚拟机ip+端口号

访问成功,部署我们的后端war包

进入tomcat01部署项目目录webapps

[root@localhost bin]# cd /tools/apache-tomcat-8.5.20/webapps/

上传war包

rz ...

 

刷新webapps目录,tomcat是自启动的,war包自动解压

进入解压文件夹

[root@localhost webapps]# cd ruoyi-admin/

进入配置目录WEB-INF/classes/

[root@localhost ruoyi-admin]# cd WEB-INF/classes/

配置前面两个yml文件

[root@localhost classes]# vim application.yml

给redis上密码123456()

[root@localhost classes]# vim application-druid.yml

记住下面配置文件的数据库名字和数据库密码,我们安装MySQL时根据以下(数据库名字及密码)要求进行安装配置

接下来配置tomcat02,配置操作和tomcat01配置一样

进入安装目录

[root@localhost classes]# cd /tools/tomcat02/

进入软件部署目录

[root@localhost tomcat02]# cd webapps/

上传war包

rz ...

因为不是自启动,所有需要关闭在重启服务

[root@localhost webapps]# cd ../bin/
[root@localhost bin]# ./shutdown.sh
[root@localhost bin]# ./startup.sh

在进入软件部署文件

[root@localhost bin]# cd ../webapps/

进入解压好的文件夹

[root@localhost webapps]# cd ruoyi-admin/

进入配置文件目录

[root@localhost ruoyi-admin]# cd WEB-INF/classes/

修改两个配置文件

记得数据库密码,数据库名字,待会安装好mysql了,根据需求建库建表

记得把localhost改成我们虚拟机的ip

给redis加上密码,我们待会安装redis会有密码

[root@localhost classes]# vim application.yml

tomcat双击点安装配置完成

3.安装配置MySQL

回到安装目录

[root@localhost classes]# cd /tools/

测试是否有数据库,有的话删掉重新安装配置

.卸载mariadb,否则安装MySql会出现冲突(先查看后删除再查看)

[root@localhost tools]# rpm -qa|grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost tools]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost tools]# rpm -qa|grep mariadb
[root@localhost tools]#

解压安装包

[root@localhost tools]# tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

开始安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度

rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm --nodeps

如果报错,后面加上 --nodeps就可以成功下载了

登录会失败(运行下面语句)

yum -y install libncurses*
ln -s libncurses.so.6.2 libncurses.so.5
ln -s libtinfo.so.6.2 libtinfo.so.5

启动MySQL服务

[root@localhost tools]# systemctl start mysqld

登录mysql修改密码

[root@localhost tools]# grep "password" /var/log/mysqld.log
2024-06-04T03:43:11.914850Z 1 [Note] A temporary password is generated for root@localhost: Z?g>-Htd5l!h
[root@localhost tools]# mysql -uroot -p
Enter password: Z?g>-Htd5l!h

登录成功

登录进来什么都不要做,优先改密码

#设置密码校验策略,要不密码太简单不让你过

set global validate_password_policy=0;

#设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)

set global validate_password_length=4;

#更新密码

set password = password("123456");

授予权限

 
 
grant all on *.* to root@'%' identified by '123456';

刷新权限

FLUSH PRIVILEGES;

创建数据库,根据上面配置文件创建数据库

mysql>
mysql> create database xmg;
Query OK, 1 row affected (0.00 sec)

进入数据库

mysql> use xmg;
Database changed
mysql>

脚本上传到安装目录 rz (此操作退出mysql容器)

导入sql脚本数据

mysql> use xmg;
Database changed
mysql> source /tools/medical(完整版,但是数据表未整理).sql

查看数据库

退出MySQL 输入命令 exit

如果我们把这些配置安装在不同的服务器上,切记一定要开放端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

刷新运行代码

firewall-cmd --reload

firewall-cmd --reload

查看

firewall-cmd --list-ports

4.安装配置redis

进入tools目录

下载

wget https://download.redis.io/releases/redis-6.0.5.tar.gz

创建redis目录

[root@localhost tools]# mkdir /usr/local/redis

解压下载好的安装包

[root@localhost tools]# tar -zvxf redis-6.0.5.tar.gz -C /usr/local/redis

由于redis是c语言编写的,所以我们需要先安装gcc

yum install gcc-c++

编译make,此时安装的gcc版本过低,升级一下

[root@localhost redis-6.0.1]# gcc -v                             # 查看gcc版本
[root@localhost redis-6.0.1]# yum -y install centos-release-scl  # 升级到9.1版本
[root@localhost redis-6.0.1]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@localhost redis-6.0.1]# scl enable devtoolset-9 bash

在进入进入redis-6.2.1目录下编译

make && make install

编译成功

编辑配置文件

[root@localhost redis-6.0.5]# vi redis.conf

no改成yes

yes改成no(因为需要远程连接) ------此步骤可以忽略

注释这一行

删除注释,给上密码(根据war包里面的配置文件设置密码)

进入bin目录

[root@localhost redis-6.0.5]# cd /usr/local/bin/
设置redis自启动
[root@localhost bin]# cd /usr/lib/systemd/system

新建一个配置文件

[root@localhost system]# vi redis.service

将以下代码复制进去

[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/lky/redis-5.0.0/src/redis-server /lky/redis-5.0.0/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID 
PrivateTmp=true

[Install]
WantedBy=multi-user.target

复制路径,放在/redis前面

进入bin目录复制路径

[root@localhost tools]# cd /usr/local/bin/
[root@localhost bin]# pwd
/usr/local/bin
[root@localhost bin]#

复制路径

[root@localhost bin]# cd /usr/local/redis/redis-6.0.5/
[root@localhost redis-6.0.5]# pwd
/usr/local/redis/redis-6.0.5
[root@localhost redis-6.0.5]#

修改好,刷新

# 重载服务

systemctl daemon-reload

# 自启动服务

systemctl enable redis

# 启动服务

systemctl start redis

# 停止服务

systemctl stop redis

# 重启服务

systemctl restart redis

查看进程

[root@localhost redis-6.0.5]# ps -ef | grep redis

一定要关掉进程

[root@localhost redis-6.0.5]# kill -9 13390

# 重载服务

systemctl daemon-reload

# 启动服务

systemctl start redis

# 停止服务

systemctl stop redis

# 重启服务

systemctl restart redis

开发端口6379(切记)

firewall-cmd --zone=public --add-port=6379/tcp --permanent

刷新防火墙

firewall-cmd --reload

5.安装配置nginx

回到软件安装目录

[root@localhost redis-6.0.5]# cd /tools/

下载gcc(下载redis时已经下载好了可以省略这一步)

yum install -y gcc
 yum install nginx

下载nginx(可以省略)

rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

配置反向代理,负载均衡,静态资源

进入nginx下载目录

[root@localhost tools]# cd /etc/nginx/

进入配置文件目录

[root@localhost nginx]# cd conf.d/
[root@localhost conf.d]# ls
default.conf
[root@localhost conf.d]#
[root@localhost conf.d]# vim default.conf

如果没有上面配置文件,我们新建也是一样的(或者上传)rz ...

6.配置负载均衡

加入tomcat双节点

upstream  tomcats{
server   192.168.85.147:8080  weight=1;
server   192.168.85.147:8081  weight=2;
}

localhost改成我们前端给的域名(我这里是www.zking.xmg)

6.1配置反向代理
location  ^~/api/ {
proxy_pass http://tomcats/ruoyi-admin/;
}
location /prod-api/ {
                        proxy_set_header Host $http_host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header REMOTE-HOST $remote_addr;
                        proxy_set_header X-Forwarded-For           $proxy_add_x_forwarded_for;
                        proxy_pass http://tomcats/ruoyi-admin/;
                }

6.2配置静态文件

复制root路径

进入静态文件路径,将我们的静态文件放进去

[root@localhost conf.d]# cd /usr/share/nginx/html/

将这个目录下的文件全部删除,上传dist静态文件

[root@localhost html]# rm -rf *

rz ...

dist目录的文件夹下新建WEB-INF文件夹,并在里面添加web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1" metadata-complete="true">
     <display-name>Router for Tomcat</display-name>
     <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>

开发端口80(切记)

firewall-cmd --zone=public --add-port=80/tcp --permanent

刷新防火墙

firewall-cmd --reload

启动nginx

[root@localhost nginx]# systemctl start nginx

查看状态

[root@localhost nginx]# systemctl status nginx

setenforce是Linux的selinux的防火墙配置命令,需要关闭

运行

setenforce 0

如果保持查看日志,在修改配置文件在重启服务nginx

tail -f /var/log/nginx/error.log
7.本机配置域名

路径

C:\Windows\System32\drivers\etc

host文件添加域名如下 虚拟机ip + 域名

192.168.85.147 www.zking.xmg

访问ip(部署成功页面,登录成功)

访问域名(部署成功页面,登陆成功)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业都在用的镭速是如何做到高效的大文件传输的

在当前这个数字化快速发展的时代&#xff0c;文件传输速度和安全性已经成为企业运营的关键。镭速&#xff0c;作为众多企业都在用的专业大文件传输工具&#xff0c;是如何实现高效、安全的文件传输呢&#xff1f;接下来&#xff0c;我们就来深入探讨一下镭速的传输策略及其在不…

超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名

该系统完全在linux下运行&#xff0c;不存在使用第三方收费工具&#xff0c;市面上很多系统都是使用的是第三方收费系统&#xff0c;例如&#xff1a;某心签名工具&#xff0c;某测侠等&#xff0c;不开源而且需要每年交费&#xff0c;这种系统只是在这些工具的基础上套了一层壳…

Superset二次开发之基于GitLab OpenAPI 查询项目的提交记录中修改的文件

背景: Superset二次开发,在处理版本升级的过程中,需要手动迁移代码, 如何在Superset项目众多的文件中,记录修改过的文件,迁移代码时只需重点关注这些文件修改的内容即可, 但是针对项目中多次的commit 信息,每个commit 又涉及不同的文件, 如何快速梳理出这些二开工作中…

C++青少年简明教程:C++的指针入门

C青少年简明教程&#xff1a;C的指针入门 说到指针&#xff0c;就不可能脱离开内存。了解C的指针对于初学者来说可能有些复杂&#xff0c;我们可以试着以一种简单、形象且易于理解的方式来解释&#xff1a; 首先&#xff0c;我们可以将计算机内存想象成一个巨大的有许多格子的…

算法金 | 再见!!!K-means

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今天我们来聊聊达叔 6 大核心算法之 —— k-means 算法。最早由斯坦福大学的 J. B. MacQueen 于 1967 年提出&#xff0c;后来经过许多…

ASP.NET MVC企业级程序设计(查,删,展示详情,日期转换,¥字符串拼接)

题目&#xff1a; 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace MvcApplication1.Controllers {public class HomeController : Controller{//// GET: /Home/public Action…

浏览器实时播放摄像头数据并通过 Yolo 进行图像识别

安装 Ultralytics 之后&#xff0c;可以直接通过本地获取摄像头数据流&#xff0c;并通过 Yolo 模型实时进行识别。大多情况下&#xff0c;安装本地程序成本比较高&#xff0c;需要编译打包等等操作&#xff0c;如果可以直接通过浏览器显示视频&#xff0c;并实时显示识别到的对…

2024年6月-Docker配置镜像代理

步骤1&#xff1a;编辑 daemon.json 文件 vim /etc/docker/daemon.json步骤2&#xff1a;添加配置 将以下内容粘贴到文件中&#xff1a; {"insecure-registries": ["192.168.0.99:8800"],"data-root": "/mnt/docker","registr…

【Python】已解决报错:AttributeError: module ‘json‘ has no attribute ‘loads‘解决办法

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&#xff0c;我将分享Web前后端开发、人工智能、机器学习、深…

Python实现任务进度条展示(tqdm库实现进度条)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

高考完的三个月想自学点编程,有没有什么建议

&#x1f446;点击关注 获取更多编程干货&#x1f446; 对于刚刚完成高考的学生来说&#xff0c;无论未来是否选择计算机科学作为专业方向&#xff0c;自学编程技能是一项非常有价值的投资&#xff0c;掌握编程知识能够帮助同学们为将来的学习和科研 实践奠定一个基础。 随着…

计算机网络 —— 运输层(运输层概述)

计算机网络 —— 运输层&#xff08;运输层概述&#xff09; 运输层运输层端口号复用分用复用&#xff08;Multiplexing&#xff09;分用&#xff08;Demultiplexing&#xff09; 常用端口号页面响应流程 我们今天进入到运输层的学习&#xff1a; 运输层 我们之前学习的物理层…

感受光子芯片中试线,如何点亮未来计算与通信的革命之路(2024青岛智能装备与通信技术展)

光子芯片中试线&#xff1a;点亮未来计算与通信的革命之路 在新一代信息技术的浪潮中&#xff0c;光子芯片以其低能耗、高速度的特点备受瞩目。首条光子芯片中试线的建立&#xff0c;标志着我国在光电子领域的重大突破&#xff0c;同时也为即将到来的量子计算时代奠定了坚实基…

【DivineCut 2】Blender商店10周年免费领礼物智能服装布料生成工具限时免费领取。(1个月免费使用)

Blender商店10周年免费领礼物&#xff1a;https://blendermarket.com/birthday DivineCut 2 智能服装生成工具限时免费领取。&#xff08;1个月免费使用&#xff09; &#xff08;免费测试版资源库&#xff09; DivineCut™是一款Blender工具&#xff0c;只需点击几下&#xf…

样本学习:当AI遇上“少见多怪”

东汉名臣牟融在其著作《牟子》写道&#xff1a;“少所见&#xff0c;多所怪&#xff0c;睹橐驼&#xff0c;谓马肿背。”意思是见闻少的人遇到不常见的事物就觉得奇怪&#xff0c;见到骆驼也以为是背肿了的马。因此&#xff0c;后人总用“少见多怪”来嘲笑见识浅陋的人。然而&a…

互联网创业项目,轻资产创业项目。

目录 前言&#xff1a; 一、当前有哪些热门的互联网轻资产创业项目&#xff1f; 二、这些项目是做什么的&#xff1f; 三、项目一般都是怎么做的&#xff1f; 前言&#xff1a; 当前互联网创作项目多多&#xff0c;该怎么选择合适自己的项目去做呢&#xff1f; 一、当前有哪…

Windows 文件夹(文件)备份脚本bat

使用xcopy 来实现 1、新建一个bat脚本 重命名文件为 windows_log_bak.bat 后缀也成修改为.bat 2、备份代码 xcopy参数&#xff1a; #可在命令窗口执行这个命今&#xff0c;查看所有参数详细 xcopy /? 使用的参数&#xff1a; /e&#xff1a;拷贝所有子目录&#xff0c;包括…

编译结果处理的shell脚本

#!/bin/bash WEB"web" DIST"dist" RED\033[0:31m GREEN\033[0;32m NC\033[0m #生产打包传参 BUILD"b" if [ -e ${WEB} ];then#删历史文件rm -r ${WEB}rm ${WEB}.zip fi #编辑文件 npm run build #检查构建是否成功 if[ -e ${DIST} ];then#改名mv…

Java基础:Stream流和方法引用

一、Stream流 1.引言 Test&#xff1a;给定一个集合&#xff0c;如果想要筛选出其中以 "a" 开头且长度为3的元素&#xff0c;并添加到新集合中去&#xff0c;最后遍历打印&#xff0c;如何实现&#xff1f; public class Test {public static void main(String[] …