在线教育网站项目第一步 ::学习Vue3 + Nuxt3+Spring Cloud,服务器为centos7

一、说明

二、 配置环境

1、安装centos 7

centos 7太老了,连个nodejs装起来都麻烦死了,准备换别的系统--改为ubuntu

见新帖子

2、初始化系统

# 查看
uname -a // 查看操作系统

# 系统更新
yum update -y

#出现错误

Cannot find a valid baseurl for repo: base/7/x86_64

# 下面是解决问题,来源于deepseek

# 查看仓库配置文件
cat /etc/yum.repos.d/CentOS-Base.repo

# 确保 `baseurl` 或 `mirrorlist` 有效(示例如阿里云镜像)
sudo vi /etc/yum.repos.d/CentOS-Base.repo

# 所有内容替换为

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

# 禁用 fastestmirror 插件,该插件可能导致镜像选择失败

# 临时禁用插件
sudo yum clean all --disableplugin=fastestmirror

# 永久禁用(编辑配置文件)
sudo vi /etc/yum/pluginconf.d/fastestmirror.conf

将 enabled=1 改为 enabled=0

# 清理旧缓存

sudo yum clean all

#生成新缓存
sudo yum makecache
sudo yum update

# 关闭SELINUX
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

# 调大服务器所支持的最大文件句柄数(云服务器一般已经默认已经设置)
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nofile 65536" >> /etc/security/limits.conf

# 配置
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

# 安装基础工具
yum install -y lrzsz unzip git wget

3、新增用户并初始化

# 新增一个普通用户,系统应用都由这个普通用户来运行
useradd education
passwd education

输入密码 123456


# 用户密码自行管理

# 设置sudo权限
sed -i '/OPASSWD: ALL/a\education ALL=(ALL) NOPASSWD: ALL' /etc/sudoers

三、MySQL-8.0的安装 

1、安装

# mysql8.0
yum install -y https://repo.mysql.com/mysql80-community-release-el7.rpm
 

# 禁用默认的 MariaDB 模块(避免冲突,可能没安装mariadb)

which mariadb 看是否安装

systemctl disable mariadb

# 安装mysql
yum install -y mysql-community-server

#安装完成之后,默认已设置开机启动。

5、关键配置优化(编辑 /etc/my.cnf) 

cat >> /etc/my.cnf << 'EOF'
# 默认时区
default-time_zone='+8:00'
# 性能优化(若有单独是数据库服务器,推荐innodb_buffer_pool_size设置为系统内存的60%到80%)
innodb_buffer_pool_size=4G
innodb_log_file_size=256M
max_allowed_packet=64M
# 关闭log-bin(8.0默认是开启的)
disable-log-bin
# 设置身份认证插件(兼容低版本的认证方式)
default_authentication_plugin=mysql_native_password
# 最大连接数
max_connections=10240
# 需要启用only_full_group_by SQL模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
EOF

2、启动服务并设置开机自启 

# 启动服务并设置开机自启

sudo systemctl start mysqld
sudo systemctl enable mysqld

3、初始化与启动

# 启动
systemctl restart mysqld

# 查看初始化密码
cat /var/log/mysqld.log | grep password

xs_UCrpZu5Tj

# 初始化,按需进行确认即可(注意密码的强度,不满足无法设置密码)
mysql_secure_installation

# 登录设置授权(这里新增用户:roncoo,密码为:RonCoo.123)
mysql -uroot -p
> create user roncoo@'%' identified by 'RonCoo.123';
> GRANT ALL PRIVILEGES ON *.* TO 'roncoo'@'%' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
> exit;

# 启动
systemctl start mysqld
# 关闭
systemctl stop mysqld
# 重启
systemctl restart mysqld

配置文件位置:/etc/my.cnf
软件安装位置:/var/lib/mysql
应用日志位置:/var/log/mysqld.log
 

4、配置外网连接 

# 查看当前开放的端口

firewall-cmd --list-ports

# 开放或关闭特定端口(例如开放端口 3306):

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

firewall-cmd --zone=public --remove-port=3306/tcp --permanent
firewall-cmd --reload

# 错误Public Key Retrieval is not allowed

dbeaver连接时解决方案

编辑连接-编辑驱动属性-allowPublicKeyRetrieval设置为true

5、创建几个数据库 (使用DBeaver)

education_course

education_system

education_user

education_nacos

education_job

6、导入数据

 

四、Redis-6.2.9的安装 

1、安装redis

yum install -y gcc tcl

mdkir /opt/tools

cd /opt/tools
wget https://download.redis.io/releases/redis-6.2.9.tar.gz
tar zxvf redis-6.2.9.tar.gz && cd redis-6.2.9
make install PREFIX=/opt/redis

# 添加配置文件
cp -r /opt/tools/redis-6.2.9/redis.conf /opt/redis/redis.conf

# 创建redis内部用户
useradd redis -s /sbin/nologin -M
chown -R redis:redis /opt/redis

chown redis:redis /var/run/redis-6379.pid

2、配置redis

# 设置允许外网访问
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /opt/redis/redis.conf

# 设置密码(安全考虑,建议必须设置密码)
sed -i 's/# requirepass foobared/requirepass RonCoo.123/' /opt/redis/redis.conf

# 设置用守护线程的方式启动
sed -i 's/daemonize no/daemonize yes/' /opt/redis/redis.conf
sed -i 's/top-writes-on-bgsave-error yes/top-writes-on-bgsave-error no/' /opt/redis/redis.conf
 

3、配置开机自启动 

cat >> /usr/lib/systemd/system/redis.service << 'EOF'
[Unit]
Description=Redis
After=network.target

[Service]
Type=forking
User=redis
LimitNOFILE=65536
LimitNPROC=65536

# config中已经配置
# PIDFILE=/var/run/redis-6379.pid
ExecStart=/opt/redis/bin/redis-server /opt/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
 

# 设置开机启动
systemctl enable redis

# 启动
systemctl start redis

# 关闭

systemctl stop redis

# 重启

systemctl restart redis

#状态

systemctl status redis

配置文件:/opt/redis/redis.conf

4、测试 

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

redis-server -v

Redis Insight连接或redis-cli


[root@localhost roncoo-education]# /opt/redis/bin/redis-cli -a
Unrecognized option or bad number of args for: '-a'
[root@localhost roncoo-education]# /opt/redis/bin/redis-cli -a RonCoo.123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> get n
(nil)
127.0.0.1:6379> set n 0
OK
127.0.0.1:6379> get n
"0"
127.0.0.1:6379>
 

五、JDK-1.8.0的安装

1、卸载java(没有不用管)

sudo yum update -y
 

#Linux删除自带的JDK

1、先查看Linux自带的JDK有几个

rpm -qa | grep -i java

2、去删除JDK

[root@localhost ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
rpm: no packages given for erase

3 、编辑profile文件,去除环境变量配置

# export JAVA_HOME=/opt/java
# export JRE_HOME=${JAVA_HOME}/jre
# export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
# export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile

4、查看java

[root@localhost ~]# rpm -qa | grep -i java
[root@localhost ~]#  java -version
-bash: java: command not found

2、安装jdk

yum search java|grep jdk

yum install -y java-1.8.0-openjdk*

openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)

3、配置环境变量

#查看java安装路径


[root@localhost ~]# which java
/usr/bin/java
[root@localhost ~]# ls -lr /usr/bin/java
lrwxrwxrwx 1 root root 22 Mar  2 13:36 /usr/bin/java -> /etc/alternatives/java
[root@localhost ~]# ls -lr /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Mar  2 13:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java
[root@localhost ~]# ^C
[root@localhost ~]# ls -lr /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java
-rwxr-xr-x 1 root root 8984 Apr 17  2024 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java

配置配置JAVA_HOME 

vi /etc/profile

在文件的最后加上下面内容,保存退出

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64

 六、Maven-3.9.5的安装(服务器端可以安装)

1、下载安装 

​
cd /opt/tools 
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz
# 不能下载就在windows 下下载后上传,我就不能下载
tar -zxvf apache-maven-3.9.5-bin.tar.gz
mv apache-maven-3.9.5 /opt/maven
chown -R education:education /opt/maven

​

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/https://mirrors.tuna.tsinghua.edu.cn/apache/maven/

2、配置 

cat >> /etc/profile << 'EOF'
# maven
export MAVEN_HOME=/opt/maven
export PATH=${MAVEN_HOME}/bin:${PATH}
EOF

# 使配置立即生效
source /etc/profile

# 验证版本信息[root@localhost tools]# mvn -v
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /opt/maven
Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: /opt/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.119.1.el7.x86_64", arch: "amd64", family: "unix"
 

# 删除再重新添加
rm -f /opt/maven/conf/settings.xml

# 阿里云
cat >> /opt/maven/conf/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 <mirrors>
  <mirror>  
    <id>aliyun</id>  
    <name>aliyun maven</name>  
    <url>https://maven.aliyun.com/repository/public</url>  
    <mirrorOf>*</mirrorOf>          
  </mirror>
 </mirrors>
</settings>
EOF

# 华为云(若使用华为云服务器建议使用)
cat >> /opt/maven/conf/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 <mirrors>
   <mirror>
     <id>huaweicloud</id>
     <mirrorOf>*</mirrorOf>
     <url>https://mirrors.huaweicloud.com/repository/maven/</url>
   </mirror>
 </mirrors>
</settings>
EOF

七、安装tomcat

1、下载安装

cd /opt/tools

wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz

tar -xvf apache-tomcat-8.5.41.tar.gz

mv /opt/tools/apache-tomcat-8.5.41 /opt/tomcat

2、运行测试

# 运行tomcat

sh /opt/tomcat/bin/startup.sh

# 开放端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

# 在浏览器中输入URL:http://192.168.1.14:8080并单击回车

3、配置自启动 

cp /opt/tomcat/bin/catalina.sh /etc/init.d/tomcat8

chmod 755 /etc/init.d/tomcat8

vim /etc/init.d/tomcat8

在文件第一行下面添加

#chkconfig: 2345 10 90

#description: tomcat8 service

export CATALINA_HOME=/opt/tomcat

#添加服务

chkconfig --add tomcat8

#测试

service tomcat8 start

service tomcat8 stop

stop 

start后可以访问 

 八、Nodejs-v16.20.2的安装

1、安装

cd /opt/tools
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.gz
tar zxvf node-v16.20.2-linux-x64.tar.gz
mv /opt/tools/node-v16.20.2-linux-x64 /opt/node
chown -R education:education /opt/node

2、配置

cat >> /etc/profile << 'EOF'
# node
export NODE_HOME=/opt/node
export PATH=${NODE_HOME}/bin:${PATH}
EOF

# 使配置立即生效
source /etc/profile

# 验证版本信息
node -v

# 设置软连接
ln -s /opt/node/bin/node /usr/local/bin/
ln -s /opt/node/bin/npm /usr/local/bin/

# 安装pm2
npm install pm2 -g
ln -s /opt/node/bin/pm2 /usr/local/bin/

# 安装yarn
npm install yarn -g
ln -s /opt/node/bin/yarn /usr/local/bin/

# 配置为淘宝源
npm config set registry https://registry.npmmirror.com/
npm config get registry

npm install -g cnpm

ln -s /opt/node/lib/node_modules/cnpm/bin/cnpm /usr/local/bin/cnpm

3、测试

cd /opt/tools

touch example.js

const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Welcome to Node.js\n'); });
    server.listen(port, hostname, () => {
        console.log(`Server running at http://${hostname}:${port}/`); 
    }
);

firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload 

[root@localhost tools]# node example.js &
[1] 10733
[root@localhost tools]# Server running at http://0.0.0.0:3000/

九、Elasticsearch-7.15.2的安装

1、安装

cd /opt/tools
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz
mv /opt/tools/elasticsearch-7.15.2 /opt/elasticsearch
useradd elastic -s /sbin/nologin -M
chown -R elastic:elastic /opt/elasticsearch
 

2、配置

# 配置
sed -i 's/#node.name: node-1/node.name: node-1/' /opt/elasticsearch/config/elasticsearch.yml
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/' /opt/elasticsearch/config/elasticsearch.yml
echo 'cluster.initial_master_nodes: ["node-1"]' >> /opt/elasticsearch/config/elasticsearch.yml
echo 'xpack.security.enabled: false' >> /opt/elasticsearch/config/elasticsearch.yml

cat >> /etc/profile << 'EOF'
# ES_JAVA_HOME
export ES_JAVA_HOME=/opt/elasticsearch/jdk
EOF

# 使配置立即生效
source /etc/profile
 

vim  /opt/elasticsearch/bin/elasticsearch

# 调整 JVM 内存大小

ES_JAVA_OPTS="-Xms512m -Xmx512m" 

3、配置开机自启动

cat >> /usr/lib/systemd/system/elasticsearch.service << 'EOF'
[Unit]
Description=Elasticsearch

[Service]
User=elastic
LimitNOFILE=65536
LimitNPROC=65536
ExecStart=/opt/elasticsearch/bin/elasticsearch

[Install]
WantedBy=multi-user.target
EOF

# 设置开机启动
systemctl enable elasticsearch

# 启动
systemctl start elasticsearch


# 关闭
systemctl stop elasticsearch
# 重启
systemctl restart elasticsearch

# 检测
curl http://localhost:9200

4、测试

firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload 

  http://192.168.1.14:9200

十、xxl-job-admin安装,版本:2.3.1 

十、运行spring cloud后端

十、Tengine-3.0.0的安装 

1、安装

# 安装依赖
yum install -y gcc gcc-c++ autoconf automake make pcre-devel openssl openssl-devel 

# 进入安装
cd /opt/tools
wget http://tengine.taobao.org/download/tengine-3.0.0.tar.gz
tar -zxvf tengine-3.0.0.tar.gz
cd tengine-3.0.0 && ./configure --prefix=/opt/nginx
make && make install

# 存放独立域名配置(教培版)
mkdir /opt/nginx/conf/education.d
chown -R education:education /opt/nginx/conf/education.d
# 存放独立域名配置(企培版)
mkdir /opt/nginx/conf/enterprise.d
chown -R education:education /opt/nginx/conf/enterprise.d

2、启动

cat >> /usr/lib/systemd/system/nginx.service << 'EOF'
[Unit]
Description=Nginx
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
LimitNPROC=65536
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf -p /opt/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload -c /opt/nginx/conf/nginx.conf -p /opt/nginx
ExecStop=/opt/nginx/sbin/nginx -s quit -c /opt/nginx/conf/nginx.conf -p /opt/nginx
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

开机启动

 # 设置开机启动
systemctl enable nginx

# 启动
systemctl start nginx

报错:nginx: [emerg] invalid IPv6 address in resolver "[fe80::7a71:4ff:fe18:5008%enp0s25]

1、vi /etc/sysconfig/network-script/ifcfg-ens33 (有一部分人的网卡配置不是这个文件,可以先通过ip addr查看下网卡名称)

2、将文件中“IPV6INIT=no”“IPV6_AUTOCONF=no”修改后保存退出。

3、重启网络服务。service network restart

4、启动Nginx。大功告成!

3、配置nginx.conf

# 删除
rm -f /opt/nginx/conf/nginx.conf

# 新建
cat >> /opt/nginx/conf/nginx.conf << 'EOF'

user root;
worker_processes auto;

events {
        worker_connections 1024;
        accept_mutex on;
        multi_accept on;
        use epoll;
}


http {
        include    mime.types;
        default_type    application/octet-stream;

        keepalive_timeout       600s;
        client_max_body_size    1024m;

        sendfile                on;
        gzip                    on;
        gzip_min_length         1024;
        gzip_comp_level         2;
        gzip_buffers            4 16k;
        gzip_http_version       1.0;
        gzip_types         text/plain application/javascript text/javascript application/x-javascript text/css;

        upstream eduweb {
                server 127.0.0.1:3000;
        }
        upstream edugateway {
                server 127.0.0.1:8180;
        }

        include conf.d/*.conf;
}
 

EOF

4. 应用配置conf.d

# 创建
mkdir /opt/nginx/conf/conf.d

# 新建
cat >> /opt/nginx/conf/conf.d/www.conf << 'EOF'

server {
        listen 80;
        server_name localhost;
        #listen 443 ssl;
        #ssl_certificate xxx.pem;
        #ssl_certificate_key xxx.key;
        #ssl_session_timeout 5m;
        #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #ssl_prefer_server_ciphers on;

        # nacos
        location /nacos {
                proxy_pass http://127.0.0.1:8848;
        }
        # gateway
        location /gateway/ {
                proxy_pass http://edugateway/;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        # admin
        location /admin {
                root html;
                try_files $uri $uri/ /admin/index.html;
                index    index.html;
        }
        # web
        location / {
                proxy_pass http://eduweb;
                proxy_set_header Host  $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}
 

EOF

# 配置完成,要重启nginx才能生效。
systemctl restart nginx
 

5、启动配置说明

# 启动
systemctl start nginx
# 查看
systemctl stop nginx
# 重启
systemctl restart nginx
 

十二、Nacos-2.2.3的安装 

1、下载安装

cd /opt/tools
wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
tar zxvf nacos-server-2.2.3.tar.gz
mv nacos /opt/nacos
chown -R education:education /opt/nacos

# 设置权限,避免导入配置没权限
mkdir -p /work/Tomcat/localhost/nacos
chown -R education:education /work

2、配置测试 

sed -i 's/server.tomcat.accesslog.enabled=true/server.tomcat.accesslog.enabled=false/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.enabled=false/nacos.core.auth.enabled=true/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.server.identity.key=/nacos.core.auth.server.identity.key=roncoo/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.server.identity.value=/nacos.core.auth.server.identity.value=roncoo/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.plugin.nacos.token.secret.key=/nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789/' /opt/nacos/conf/application.properties
echo "spring.datasource.platform=mysql" >> /opt/nacos/conf/application.properties
echo "db.num=1" >> /opt/nacos/conf/application.properties
echo "db.url.0=jdbc:mysql://127.0.0.1:3306/education_nacos?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&autoReconnect=true" >> /opt/nacos/conf/application.properties
echo "db.user.0=roncoo" >> /opt/nacos/conf/application.properties
echo "db.password.0=RonCoo.123" >> /opt/nacos/conf/application.properties

# 配置完成后,需要把SQL脚本导入数据库,SQL脚本位置:nacos/conf/mysql-schema.sql
 

3、启动 

cat >> /usr/lib/systemd/system/nacos.service << 'EOF'
[Unit]
Description=Nacos
After=network.target

[Service]
User=roncoo
Type=forking
ExecStart=/opt/nacos/bin/startup.sh -m standalone
ExecStop=/opt/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
# 注:-m standalone,表示单机模式启动,默认是集群模式启动

# 设置开机启动
systemctl enable nacos

# 启动
systemctl start nacos
 

# 启动
systemctl start nacos
# 关闭
systemctl stop nacos
# 重启
systemctl restart nacos

# 访问地址:http://localhost:8848/nacos/,初始化的账号密码:nacos/nacos  
# 登录控制台,可以直接导入提供的 nacos_config.zip,进行配置初始化,里面的配置按需修改
# 特别注意:修改nacos的密码,建议不要包含有@!等,否则在配置里面需要进行转义
# 特别说明:系统使用的是命名空间ID,不是命名空间名称,这里建议ID和名称设置为一致。

放开端口

firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --reload

 4、问题

[root@localhost ~]# systemctl status nacos.service
● nacos.service - Nacos
   Loaded: loaded (/usr/lib/systemd/system/nacos.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2025-03-02 09:39:13 CST; 9s ago
  Process: 6424 ExecStart=/opt/nacos/bin/startup.sh -m standalone (code=exited, status=1/FAILURE)

Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/...bin)
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: readlink: missing operand
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: Try 'readlink --help' for more information.
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: dirname: missing operand
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: Try 'dirname --help' for more information.
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: ERROR: Please set the JAVA_HOME variable in your environ...! !!
Mar 02 09:39:13 localhost.localdomain systemd[1]: nacos.service: control process exited, code=exited status=1
Mar 02 09:39:13 localhost.localdomain systemd[1]: Failed to start Nacos.
Mar 02 09:39:13 localhost.localdomain systemd[1]: Unit nacos.service entered failed state.
 

解决办法:

[root@localhost ~]# which java    //找到jdk位置
/usr/bin/java
 
[root@localhost ~]# ll /usr/bin/java 
lrwxrwxrwx. 1 root root 22 2月  24 12:26 /usr/bin/java -> /etc/alternatives/java
 
[root@localhost ~]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 2月  24 12:26 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java
 
[root@localhost ~]# ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/
 
[root@centos7-2 nacos]# vi /etc/profile
# 在最后增加
export JAVA_HOME=/opt/java        
export JRE_HOME=$JAVA_HOME/jre

# 这里和前面设置有点不一样,改为这个
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile 

systemctl start nacos

十三、docker安装(不用)

  •  docker安装

# 卸载旧版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

# 安装依赖包

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

# 配置docker配置Docker的yum源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新 yum 缓存

yum makecache fast

#安装Docker社区版

yum install -y docker-ce

# 启动Docker

[root@localhost ~]# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?


[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2025-03-02 13:08:38 CST; 23s ago
     Docs: https://docs.docker.com
 Main PID: 2257 (dockerd)
    Tasks: 9
   Memory: 29.1M
   CGroup: /system.slice/docker.service
           └─2257 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Mar 02 13:08:35 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Mar 02 13:08:35 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:35.266369560+08:00" level=info msg="Starting up"
Mar 02 13:08:35 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:35.667719413+08:00" level=info msg="Loading containers: start."
Mar 02 13:08:37 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:37.465713089+08:00" level=info msg="Firewalld: interfac...rning"
Mar 02 13:08:37 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:37.936192001+08:00" level=info msg="Loading containers: done."
Mar 02 13:08:38 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:38.072361989+08:00" level=info msg="Docker daemon" comm...26.1.4
Mar 02 13:08:38 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:38.072726144+08:00" level=info msg="Daemon has complete...ation"
Mar 02 13:08:38 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:38.371166208+08:00" level=info msg="API listen on /run/....sock"
Mar 02 13:08:38 localhost.localdomain systemd[1]: Started Docker Application Container Engine.

[root@localhost ~]# docker -v
Docker version 26.1.4, build 5650f9b
 

#配置镜像加速 

[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{
        "registry-mirrors": [
                "https://registry.docker-cn.com",
                "http://hub-mirror.c.163.com",
                "https://docker.mirrors.ustc.edu.cn",
                "https://dockerhub.azk8s.cn",
                "https://mirror.ccs.tencentyun.com",
                "https://registry.cn-hangzhou.aliyuncs.com",
                "https://docker.mirrors.ustc.edu.cn",
                "https://docker.1panel.live",
                "https://atomhub.openatom.cn/",
                "https://hub.uuuadc.top",
                "https://docker.anyhub.us.kg",
                "https://dockerhub.jobcher.com",
                 "https://dockerhub.icu",
                "https://docker.ckyl.me",
                "https://docker.awsl9527.cn"
         ]
}

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

  • 安装jkd8

# 拉取jdk1.8官方镜像

[root@localhost ~]# docker pull kdvolder/jdk8
Using default tag: latest
latest: Pulling from kdvolder/jdk8
50aff78429b1: Pull complete
f6d82e297bce: Pull complete
275abb2c8a6f: Pull complete
9f15a39356d6: Pull complete
fc0342a94c89: Pull complete
8fa98a855564: Pull complete
Digest: sha256:419d116314d545535b538fa0a3730836ab2505963e43412f25c70c3fd29bdff3
Status: Downloaded newer image for kdvolder/jdk8:latest
docker.io/kdvolder/jdk8:latest
 

#查看镜像 
[root@localhost ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED       SIZE
kdvolder/jdk8   latest    b83ae7c076b1   7 years ago   488MB

#在docker容器中运行镜像
[root@localhost ~]# docker run -di --name=jdk1.8 kdvolder/jdk8
78598d3e9341f9215ed5e38b980966c132f1c3eee3380b9a7f77a76f577a8f12

# 进入容器查看jdk安装版本 

[root@localhost ~]# docker exec -it jdk1.8 /bin/bash
root@78598d3e9341:/# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

十四、Seata-1.6.1的安装 

1、下载安装

cd /opt/tools
wget https://github.com/seata/seata/releases/download/v1.6.1/seata-server-1.6.1.tar.gz
tar zxvf seata-server-1.6.1.tar.gz
mv seata /opt/seata
 

2、配置环境

修改对应的参数:seata/confapplication.yml

# 授权
chown -R education.education /opt/seata

3. 启动 

cat >> /usr/lib/systemd/system/seata.service << 'EOF'
[Unit]
Description=Seata
After=network.target

[Service]
User=education
ExecStart=/opt/seata/bin/seata-server.sh
Type=forking
WorkingDirectory=/opt/seata/bin

[Install]
WantedBy=multi-user.target
EOF



 

# 设置开机启动
systemctl enable seata

# 启动
systemctl start seata
# 关闭
systemctl stop seata
# 重启
systemctl restart seata

1. 若需要集群,部署多个seata-server即可实现(原理:因为其注册到nacos,利用nacos实现集群)
2. 若使用db模式,默认的数据库数据库驱动不适配MySQL8.0,需要将./seata/lib/jdbc下的驱动复制到./seata/lib
3. db模式下的脚本地址:https://github.com/seata/seata/tree/v1.6.1/script/server/db

十五、MinIO安装

1、安装

mkdir -p /opt/minio
cd /opt/minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio

cat >> /opt/minio/minio.conf << 'EOF'
MINIO_ROOT_USER=f8468f81034b1761
MINIO_ROOT_PASSWORD=f8468f81034b1761
MINIO_VOLUMES=/opt/minio/data
MINIO_OPTS="--console-address :9001"
EOF
 

2. 启动 

cat >> /usr/lib/systemd/system/minio.service << 'EOF'
[Unit]
Description=MinIO
After=network.target

[Service]
LimitNOFILE=65536
LimitNPROC=65536
EnvironmentFile=/opt/minio/minio.conf
ExecStart=/opt/minio/minio server $MINIO_VOLUMES $MINIO_OPTS

[Install]
WantedBy=multi-user.target
EOF

# 设置开机启动
systemctl enable minio

# 启动
systemctl start minio