环境依赖
Oracle JDK8 可以直接使用的,但是 Oracle JDK8 之后的所有版本,是需要付费商用的,而 jeecg 目前常常会用的是这两个版本,所以我们需要在使用 JDK 8 时正常下载 oracle 版本,而 JDK 17 时,则只能下载 Open JDK。由于 JDK 8 版本过于陈旧,本文档将基于 JDK 17 进行讲解。
# 创建java文件夹
mkdir /usr/local/java
# 解压
tar -zxvf openjdk-17_linux-x64_bin.tar.gz
# 将解压文件移动至java文件夹
mv jdk-17/* /usr/local/java/
# 添加环境变量
vi /etc/profile
# 按 i 键可转为输入模式
# 在文件的export PATH=**** 后新增以下内容
export PATH=$PATH:/usr/local/java/bin
# 按esc键后保存并退出
:x
# 刷新环境变量
source /etc/profiles
# 打印java版本号
java -version
# 如果一切正常,会输入以下内容
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)
# 如果发现版本号不对,那是因为服务器可能默认安装了jdk,可使用以下命令进行卸载
yum -y remove java
# 再次执行以下命令后,再使用java -version检查
source /etc/profile
Apache maven 是 java 工程最受欢迎的打包工具,绝大多数 java 工程都是使用 maven 规范进行构建的,如果我们想将 java 工程转成可执行文件,需要安装 maven。保险起见,maven 版本最好选择在 3.5.0 并且往上,避免版本不支持,本文档使用 3.8.6 版本进行讲解。
# 创建maven安装文件夹
mkdir /usr/local/maven
# 解压
tar -zxvf apache-maven-3.8.6-bin.tar.gz
# 将解压文件移动至maven文件夹
mv apache-maven-3.8.6/* /usr/local/maven/
# 添加环境变量
vi /etc/profile
# 按 i 键可转为输入模式
# 在文件的export PATH=**** 后新增以下内容
export PATH=$PATH:/usr/local/maven/bin
# 按esc键后保存并退出
:x
# 刷新环境变量
source /etc/profiles
# 打印maven版本号
mvn -version
# 正常将会打印以下内容
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /usr/local/maven
Java version: 17, vendor: Oracle Corporation, runtime: /usr/local/java
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.119-19.0009.44", arch: "amd64", family: "unix"
这时我们只是完成了对 maven 的安装,与 JDK 不同的是,我还需要对 maven 进行配置。maven 默认下载的依赖是使用国外的地址,这时为了减少网络耗时,我们可以换成 jeecg 的 maven 私服地址。为了方便大家更好操作,我写好了一份配置文件,大家可直接进行替换。
# 删除原有配置文件
rm -rf /usr/local/maven/conf/settings.xml
# 新增文件
vi /usr/local/maven/conf/settings.xml
# 将以下内容进行复制按esc键后再使用 :x 进行保存并退出
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<localRepository>/usr/local/maven/repo</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots,!getui-nexus</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
Node.js 是 jeecg 前端工程所依赖的打包工具,作用与 maven 一样,是将前端代码文件打包成可被浏览器运行的前端文件,Node.js 安装的版本推荐为 18 / 20+,本文档以 node 18 进行讲解。
# 创建node安装文件夹
mkdir /usr/local/node
# 解压文件
tar -xf node-v18.16.0-linux-x64.tar.xz
# 将解压文件移动至node安装文件夹
mv node-v18.16.0-linux-x64/* /usr/local/node/
# 添加环境变量
vi /etc/profile
# 按 i 键可转为输入模式
# 在文件的export PATH=**** 后新增以下内容
export PATH=$PATH:/usr/local/node/bin
# 按esc键后保存并退出
:x
# 刷新环境变量
source /etc/profiles
# 打印node 版本号
node -v
# 正常会显示以下内容
v18.16.0
提示:
安装完成 node.js 后,会自动安装 npm 工具,前端工程主要使用该命令进行运行打包,不过该命令效率较慢,建议再安装一个 yarn 提高打包效率,pnpm 工具与 yarn 工具同等作用,不过 pnpm 比较吃配置。
yarn 安装命令:npm install yarn -g
MySQL
jeecg 后端工程使用的 mysql 数据库,本文使用 mysql 8 版本进行讲解
# 下载MySQL Yum存储库
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
# 安装存储库
yum install mysql80-community-release-el7-3.noarch.rpm
# 安装mysql server
yum -y install mysql-server
# 启动MySQL服务
systemctl start mysqld
# 设置MySQL服务开机自启
systemctl enable mysqld
# 修改root用户密码,安装mysql ,初始化root没有密码
mysql -uroot -p
# 两次回车
# mysql 要求密码需要含大小写数字特殊字符
alter user 'root'@'localhost' identified by 'rooT1234#';
# 退出mysql
mysql> exit;
jeecg 后端工程使用 Redis 作为分布式缓存数据,本文使用 redis 5 版本进行讲解
# 安装redis
yum -y install redis
# 启动redis服务
systemctl start redis
# 设置redis服务开机自启
systemctl enable redis
Jeecg 工程使用 git 进行版本管理
# 安装git
yum -y install git
# 显示git 版本号
git -v
# 显示以下内容即安装成功
git version 2.43.5
工程初始化
# 拉取代码,如果网络不好可拉取 https://gitee.com/jeecg/JeecgBoot.git
cd ~
git clone https://github.com/jeecgboot/JeecgBoot.git
# 初始化数据库
mysql -uroot -p
#输入前面设置的mysql root账户的密码
rooT1234#
# 在mysql 命令行中,使用source命令执行jeecg提供的sql脚本
mysql> source /root/JeecgBoot/jeecg-boot/db/jeecgboot-mysql-5.7.sql
mysql> source /root/JeecgBoot/jeecg-boot/db/table_nacos.sql
mysql> source /root/JeecgBoot/jeecg-boot/db/tables_xxl_job.sql
# 全部完成后,检查数据库
mysql> show databases;
# 显示以下数据库列表,即初始化成功
+--------------------+
| Database |
+--------------------+
| information_schema |
| jeecg-boot |
| mysql |
| nacos |
| performance_schema |
| sys |
| xxl_job |
+--------------------+
# 后端打包
cd JeecgBoot/jeecg-boot
# 修改nacos数据库连接用户名密码
vi jeecg-server-cloud/jeecg-cloud-nacos/src/main/resources/application-mysql.yml
# 将以下数据库连接信息的密码修改为前端设置的密码
db:
num: 1
password:
'0': ${MYSQL-PWD:rooT1234#}
# 按esc键后输入以下命令保存并关闭
:x
# 执行后端工程打包命令
mvn clean install -P dev,SpringCloud
# 前端打包
cd JeecgBoot/jeecgboot-vue3
yarn install
为本机添加 hosts
# 打开系统host 文件
vi /etc/hosts
# 按 i 转为编辑模式
#输入以下内容
27.0.0.1 jeecg-boot-mysql
127.0.0.1 jeecg-boot-redis
127.0.0.1 jeecg-boot-nacos
127.0.0.1 jeecg-boot-gateway
127.0.0.1 jeecg-boot-system
# 按ESC键后输入以下命令保存并退出
:x
启动 nacos
cd ~
# 启动nacos 服务
nohup java -jar JeecgBoot/jeecg-boot/jeecg-server-cloud/jeecg-cloud-nacos/target/jeecg-cloud-nacos-3.7.1.jar > nacos.log 2>&1 &
# 可通过以下命令查看nacos启动日志,按ctrl+c键退出
tail -f nacos.log
nacos 启动后,需要对其余服务的数据库用户名密码进行修改,默认设置为 root root
编辑 public 命名空间的 jeecg-dev.yaml,将以下内容进行修改即可
spring:
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
allow:
web-stat-filter:
enabled: true
dynamic:
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall,slf4j
wall:
selectWhereAlwayTrueCheck: false
stat:
merge-sql: true
slow-sql-millis: 5000
datasource:
master:
url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
# 修改这一行
password: rooT1234#
driver-class-name: com.mysql.cj.jdbc.Driver
# 启动system,因为system会加载动态路由信息至redis,gateway服务需要读取该内容
nohup java -jar JeecgBoot/jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start/target/jeecg-system-cloud-start-3.7.1.jar > system.log 2>&1 &
# 查看system启动日志
tail -f system.log
# 启动gateway
nohup java -jar JeecgBoot/jeecg-boot/jeecg-server-cloud/jeecg-cloud-gateway/target/jeecg-cloud-gateway-3.7.1.jar > gateway.log 2>&1 &
# 查看gateway启动日志
tail -f gateway.log
# 启动demo
nohup java -jar JeecgBoot/jeecg-boot/jeecg-server-cloud/jeecg-demo-cloud-start/target/jeecg-demo-cloud-start-3.7.1.jar > demo.log 2>&1 &
# 查看demo启动日志
tail -f demo.log
# 查看日志时,均可按ctrl+c 退出查看
# 可使用 jps -l 查看所有进程
# 使用 kill -9 [进程号] 可关闭对应进程
nginx 主要可用于前端打包后的静态文件代理,同时也可用于服务器对外的屏障,只需要开放 nginx 监听的端口,屏蔽其它端口对外访问,有效提高服务器的安全防护。
# 安装nginx
yum -y install nginx
# 启动nginx
systemctl start nginx
# 开机启动nginx
systemctl enable nginx
安装成功后,nginx 的配置文件,默认存储在 /etc/nginx/nginx.conf
# 修改前端配置文件
vi JeecgBoot/jeecgboot-vue3/.env.production
# 将 http://jeecg-boot-system:8080/jeecg-boot
# 修改成 http://jeecg-boot-gateway:9999
配置修改完成后,可使用以下命令进行构建,可生成 h5 静态文件的目录 /dist
cd JeecgBoot/jeecgboot-vue3
yarn run build
rm -rf /etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
添加以下内容
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html/dist;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
# 用于配合 browserHistory使用
try_files $uri $uri/ /index.html;
}
location /jeecgboot/ {
#后台接口地址(我们部署去掉了/jeecg-boot项目名,如果你有请加上)
proxy_pass http://jeecg-boot-gateway:9999/;
proxy_redirect off;
#真实IP获取
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
set $my_proxy_add_x_forwarded_for $proxy_add_x_forwarded_for;
if ($proxy_add_x_forwarded_for ~* "127.0.0.1"){
set $my_proxy_add_x_forwarded_for $remote_addr;
}
proxy_set_header X-Forwarded-For $my_proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
配置完成后,使用以下命令对配置进行热加载
# 检查配置是否完善
nginx -t
# 热加载配置变更
nginx -s reload
可在浏览器输入 http://119.45.196.21, 即可进入系统
用户名密码为:admin/123456