简介
本文以单节点简单部署为例,不适用企业级高可用部署策略。
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.gzhttps://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版本有以下要求。
版本要求 |
|
进入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)