Finereport基于linux的简单安装(单节点)

news2024/11/20 1:31:16

简介

        本文以单节点简单部署为例,不适用企业级高可用部署策略。

        FineReport的运行依赖于Tomcat ,Tomcat 是免费且性能相对稳定的 Web 应用服务器,也可以充当JSP容器。它是一个用于运行Java Servlet和JavaServer Pages(JSP)的Web服务器。

        Tomcat本身并不包含完整的JDK,但它需要在运行时依赖于JDK。在安装和配置Tomcat之前,确保已经安装了JDK。Tomcat的主要任务是接收HTTP请求,将其传递给相应的Servlet或JSP进行处理,然后将结果返回给客户端。它充当了Java Web应用程序的承载环境。
        Tomcat依赖于JDK,它使用JDK的核心功能,包括Java虚拟机和相关的标准库。在启动Tomcat时,Tomcat的启动脚本会调用JDK中的Java虚拟机,从而启动Tomcat服务器。Tomcat通过Java的Servlet和JSP技术处理Web请求,这些技术最终由JVM执行。

        当用户启动FineReport时,JVM会加载FineReport的Java字节码并执行。JVM提供了Java程序运行的环境,负责字节码的解释和执行,以及垃圾回收、内存管理等任务。FineReport本身是一个Java应用程序,它运行在JVM上,利用了JVM的特性来实现跨平台性和可移植性。

安装准备

        查看防火墙状态,永久关闭防火墙。

[root@vm01 manager]# systemctl stop  firewalld
[root@vm01 manager]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2023-12-09 07:55:34 CST; 2s ago
     Docs: man:firewalld(1)
  Process: 961 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 961 (code=exited, status=0/SUCCESS)

Dec 09 04:07:42 vm01 systemd[1]: Starting firewalld - dynamic firewall daemon...
Dec 09 04:07:44 vm01 systemd[1]: Started firewalld - dynamic firewall daemon.
Dec 09 04:07:45 vm01 firewalld[961]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider...abling it now.
Dec 09 07:55:33 vm01 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Dec 09 07:55:34 vm01 systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@vm01 manager]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

使用windows的ping指令 确保虚拟机与外界互通。 

        查看操作系统情况

        本文采用centos7进行安装演示,使用cat /etc/os-release指令查看当前虚拟机的版本信息

[root@vm01 /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

        查看运行内存大小

(注意后面需要根据此数据,配置帆软相关参数)

[root@vm01 /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.8G        242M        7.4G         11M        114M        7.3G
Swap:            0B          0B          0B

        本博主swap交换空间为零,当内存资源有限,建议不用开启,当内存资源充足可以按需分配。

        查看cpu情况

[root@vm01 /]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            23
Model:                 17
Model name:            AMD Ryzen 5 PRO 2400G with Radeon Vega Graphics
Stepping:              0
CPU MHz:               3593.227
BogoMIPS:              7186.45
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             64K
L2 cache:              512K
L3 cache:              4096K
NUMA node0 CPU(s):     0
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext ssbd rsb_ctxsw ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat overflow_recov succor
几个核心参数解释: 

CPU op-mode(s): 32-bit, 64-bit

表示 CPU 支持的操作模式,即可以运行 32 位和 64 位的操作系统和应用程序。(注意,该参数对于选择对应版本的JDK重要,需要作为参考)。


Byte Order: Little Endian

表示字节序,这里是小端序。小端序是一种字节排列方式,它将最低有效字节存储在最低内存地址处。大多数 x86 架构的系统都是小端序。


CPU(s): 1

表示系统有一个 CPU。


On-line CPU(s) list: 0

表示在线的 CPU 列表,这里只有一个 CPU(编号为 0)在线。


Thread(s) per core: 1

表示每个核心只有一个线程。在这个输出中,每个核心只能同时执行一个线程。


Core(s) per socket: 1

表示每个 CPU 插槽只有一个核心。这表明系统的 CPU 架构是单核心的

安装JDK 

        前文简介介绍了帆软是运行的JVM上的一款软件,运行环境需要依赖于JDK

登录jdk官网查看JDK最新支持的操作系统是否和我们本机的操作系统符合。本文以JDK8为例,对于本演示虚拟机符合标准。(不要追求过高版本,避免版本兼容出问题)       

 进入官网,选择jdk-8u202-linux-x64.tar.gzicon-default.png?t=N7T8https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz缩包。

        在可以链接外网的情况下,可以使用以下指令进行下载,在内网环境,需要自行将压缩包上传至对应服务器上。 

wget https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html#license-lightbox

 解压、清除压缩包。

[root@vm01 ~]# tar -zxf jdk-8u202-linux-x64.tar.gz 
[root@vm01 ~]# rm -rf jdk-8u202-linux-x64.tar.gz 
[root@vm01 ~]# mv jdk1.8.0_202/ jdk
[root@vm01 ~]# mv jdk/ /
[root@vm01 ~]# cd /jdk/

编辑环境变量

[root@vm01 jdk]# vim /etc/profile

进入/etc/profile添加以下环境变量在末尾。 

export JAVA_HOME=/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${CATALINA_HOME}/bin:${JRE_HOME}/bin:$PATH

简单指令测试 

[root@vm01 jdk]# java -version 
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

添加完环境变量之后,需要进行source /etc/profile进行加载环境变量,使用java -version 如果弹出版本信息,说明安装完成。

安装TOMCAT

        帆软11对tomcat版本有以下要求。

版本要求
  • 支持tomcat8.0(不支持 Tomcat 8.0.32 版本)

  • 支持tomcat9.0

  • 不支持tomcat10.0

进入TOMCAT官网,下载apache-tomcat-8.5.51.tar.gz对应得压缩包,

        这里顺便讲一下几个版本的区别。

  • Core版本: 包括Tomcat的核心部分,适用于一般的Web应用程序。
  • Full documentation版本: 包括完整的Tomcat文档,通常用于查阅Tomcat的详细信息。
  • Deployer版本: 针对部署Web应用程序的需求。
  • Embedded版本: 针对嵌入式场景,可能是一些特殊需求的解决方案
  • Source Code Distributions:是tomcat的源码版本,可以进行预编译,本文旨在安装常规用于学习的版本,使用core即可

创建安装目录、解压缩

[root@vm01 ~]# mkdir /tomcat 
[root@vm01 ~]# mv apache-tomcat-9.0.83/ /tomcat 
[root@vm01 ~]# cd /tomcat/
[root@vm01 tomcat]# ll
total 0
drwxr-xr-x. 9 root root 220 Dec  9 07:16 apache-tomcat-9.0.83
[root@vm01 tomcat]# mv apache-tomcat-9.0.83/ tomcat   #重命名压缩包名称

环境变量配置     

   使用以下指令,编辑环境变量

vim /etc/profile 

        环境变量值增加 CATALINA_HOME及其对应的PATH。

export JAVA_HOME=/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${CATALINA_HOME}/bin:${JRE_HOME}/bin:${CATALINA_HOME}/bin:$PATH

export CATALINA_HOME=/tomcat/tomcat
                                           

使用source /etc/profile 重新加载环境变量 

[root@vm01 ~]# source /etc/profile

    启动tomcat

[root@vm01 jdk]# startup.sh 
Using CATALINA_BASE:   /tomcat/tomcat
Using CATALINA_HOME:   /tomcat/tomcat
Using CATALINA_TMPDIR: /tomcat/tomcat/temp
Using JRE_HOME:        /jdk/jre
Using CLASSPATH:       /tomcat/tomcat/bin/bootstrap.jar:/tomcat/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@vm01 jdk]# netstat -nlp|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      2609/java           
[root@vm01 jdk]# jps
2609 Bootstrap
2667 Jps
[root@vm01 jdk]# 

登录网页进行验证

http://10.0.0.200:8080/

前文中提到在查看系统相关参数的指令,这可以设置环境变量对JVM允许环境进行优化,以下举例部分参数进行说明

调整堆内存大小:
export CATALINA_OPTS="-Xms512m -Xmx1024m"

设置新生代和老年代的比例:
export CATALINA_OPTS="-XX:NewRatio=2"

启用并发垃圾收集(CMS):
export CATALINA_OPTS="-XX:+UseConcMarkSweepGC"

设置堆内存的空闲回收时间:
export CATALINA_OPTS="-XX:MaxHeapFreeRatio=70 -XX:MinHeapFreeRatio=40"

设置线程栈大小:
export CATALINA_OPTS="-Xss256k"

 除此之外还可以根据服务器运行线程情况,设置一些端口信息。

HTTP 端口(默认为 8080):
export CATALINA_OPTS="-Dcatalina.http.port=8888"

TTPS 端口(默认为 8443):
export CATALINA_OPTS="-Dcatalina.https.port=8443"

AJP 端口(默认为 8009):
export CATALINA_OPTS="-Dcatalina.ajp.port=8009"

 安装设计器

        进入帆软官网,选择个人版本进行下载

下载完成后直接点击运行

 

         设计器的安装就很简单了,跟着提示走就可以

指定一个安装目录,然后点击下一步

 

由于是初次下载设计器,并没有设置管理员账号密码,此时我们登录决策系统

 启动设计器,先登录决策系统,然后设置管理员账户密码。

进行登录  看看是否能正常登录决策系统

注:关闭设计器,进行下一步

        将设计器安装目录中webroot目录上传到虚拟机中的tomcat的webapps中去,设计器中的webroot目录下包含了设计器运行的相关参数和配置文件,要想要远程控制,就要将该文件包上传。 启动设计器

启动tomcat

startup.sh

远程链接

选择其他

配置相关信息(默认端口依然是8080)

 

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

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

相关文章

十八、FreeRTOS之FreeRTOS任务通知

本节需要掌握以下内容: 1、任务通知的简介(了解) 2、任务通知值和通知状态(熟悉) 3、任务通知相关API函数介绍(熟悉) 4、任务通知模拟信号量实验(掌握) 5、任务通知…

第一课【习题】使用DevEco Studio高效开发

用哪一种装饰器修饰的组件可作为页面入口组件 ArkTS Stage模型支持API Version 9,关于其工程目录结构说法正确的是? 4. DevEco Studio提供模拟器供开发者运行和调试HarmonyOS应用/服务,以下说法错误的是? DevEco Studio支持使…

2023年9月8日 Go生态洞察:gopls的扩展与Go生态系统的成长

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Qt之实现文字滚动效果

一.效果 二.实现 roller.h #ifndef ROLLER_H #define ROLLER_H#include <QWidget> #include <QPaintEvent> #include <QShowEvent> #include <QHideEvent> #include <QTimer>class Roller : public QWidget { public:explicit Roller(QWidget …

git标签的管理与思考

git 标签管理 git 如何打标签呢&#xff1f; 标签是什么? 标签 相当于一个 版本管理的一个贴纸&#xff0c;随时 可以通过标签 切换到 这个版本的状态 &#xff0c; 有人可能有疑问 git commit 就可以知道 代码的改动了&#xff0c; 为啥还需要标签来管理呢&#xff1f; …

建行驻江门市分行纪检组以廉政家访助推廉洁家风

为强化员工行为管理&#xff0c;深入了解员工的家庭情况以及员工8小时以外的生活&#xff0c;近日&#xff0c;建行驻江门市分行纪检组组长带队对两名青年纪检员开展廉政家访。 驻行纪检组组长亲切问候并访谈了青年纪检员的家庭成员&#xff0c;详细了解其家庭生活情况&#x…

【QED】小樱的问题

目录 题目描述输入格式输出格式 测试样例样例说明 思路核心代码 题目描述 在 f u f u fufu fufu乐园&#xff0c;每天都会有各种各样精彩的内容发生。就比如说&#xff0c;今天&#xff0c;小樱的米饭店开张啦&#xff01; 为了吸引 f u f u fufu fufu们前来购买小樱的大米&a…

来自bioBakery Lab的宏基因组学微生物群落的代谢功能分析工具-HUMAnN 3.0的安装配置及分析使用方法-安装填坑

HUMAnN 3.0 简介&#xff1a; HUMAnN 3.0 是一个用于宏基因组数据分析的工具&#xff0c;能够从宏基因组测序数据中推断出微生物群落的代谢功能信息。它可以识别微生物群落中存在的代谢途径&#xff0c;并定量这些通路的丰度。HUMAnN 3.0 依赖于多个工具和数据库来实现这些功能…

validateEmail

邮箱验证 validateEmail /*** 邮箱验证* * author ZengWenFeng* email 117791303QQ.com* mobile 13805029595* date 2016.08.09*/private static final Pattern PATTERN_EMAIL Pattern.compile("^[_A-Za-z0-9-\\](\\.[_A-Za-z0-9-])*" "[A-Za-z0-9-](\\.[A-Z…

【数电笔记】56-消抖开关

目录 说明&#xff1a; 1. 按键抖动形成的原因 2. 按键消抖的方法 3. 用与非RS触发器构成消抖开关&#xff08;硬件消抖&#xff09; 说明&#xff1a; 笔记配套视频来源&#xff1a;B站本系列笔记并未记录所有章节&#xff0c;只对个人认为重要章节做了笔记&#xff1b;标…

抖去推--短视频剪辑、矩阵无人直播saas营销工具一站式开发

抖去推是一款短视频剪辑和矩阵无人直播SAAS营销工具一站式开发平台。它提供了以下功能和特点&#xff1a; 1. 短视频剪辑&#xff1a;抖去推提供了一系列的剪辑工具&#xff0c;包括自动剪辑、特效制作、配音配乐等&#xff0c;可以帮助用户轻松制作出高质量的短视频。 2. 矩阵…

npm : 无法加载文件 D:\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。

今天在使用vscode下载项目的依赖时&#xff0c;输入 pnmp install,结果报错: npm : 无法加载文件 D:\nodejs\node_global\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。原因&#xff1a; 因为在此系统上禁止运行脚本&#xff0c;也就是说没有权限&#xff0c;查一下&#…

两年外包生涯做完,感觉自己废了一半。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

【Java基础篇 | 面向对象】—— 聊聊什么是接口(下篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 上篇&#xff08;【Ja…

船舶机电设备智能故障诊断系统

1 船舶电气设备故障诊断专家系统 体系结构 整个系统的体系结构采用浏览器&#xff0f; 服务器 &#xff08;B&#xff0f; S&#xff09; 三层体系结构 &#xff08; 如图 1 所示 &#xff09;。B&#xff0f;S 模式是一种 以 Web 技术为基础的系统平台模式 。 把传统…

LeetCode刷题--- 求根节点到叶节点数字之和

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏&#xff1a;http://t.csdnimg.cn/ZxuNL http://t.csdnimg.cn/c9twt 前言&#xff1a;这个专栏主要讲述递归递归、搜索与回溯算法&#xff0c;所以下面题目主要也是这些算法做的 我讲述…

协同过滤算法springboot+java+ssm高校图书馆图书借阅管理系统k32vr

课题主要分为四大模块&#xff1a;即管理员模块&#xff0c;员工模块&#xff0c;教师模块和学生模块&#xff0c;主要功能包括&#xff1a;首页&#xff0c;个人中心&#xff0c;员工管理&#xff0c;学生管理&#xff0c;教师管理&#xff0c;图书分类管理&#xff0c;图书信…

交通|车辆路径启发式中的分解策略

推文作者&#xff1a;Amiee&#xff0c;研究方向&#xff1a;交通物流 编者按&#xff1a; VRP问题由于其理论难度和实践价值&#xff0c;学者们设计了大量的精确或启发式求解算法。本文讨论了车辆路径启发式中分解技术的主要特征&#xff0c;强调了它们的优缺点&#xff0c;并…

唱响主旋律——建行江门市分行推动服务实体经济高质量发展

建行江门市分行主动对接当地战略部署&#xff0c;在侨乡热土踏歌而行&#xff0c;全力当好服务实体经济的主力军和维护金融稳定的压舱石&#xff0c;在助力再造一个现代化新江门上贡献建行力量。 输血实体 为实体经济服务是金融的天职。建行江门市分行积极发挥在重大基建领域…

爱智EdgerOS之深入解析如何应用爱智的视频流模块完成拉流

一、ONVIF 规范和常见视频流传输协议 ① ONVIF 规范 随着视频监控产业链的成熟&#xff0c;市面上陆陆续续出现了各式各样的网络摄像设备&#xff0c;这些设备都需要通讯协议才能进行数据传输。早期厂商都采用私有协议&#xff0c;但是现在厂商分工明确&#xff0c;有的负责生…