Si të instaloni JasperReports me Nginx Proxy në Ubuntu 22.04
JasperReports është një motor raportimi java pa pagesë dhe me burim të hapur dhe bibliotekë e klasës që i ndihmon zhvilluesit të shtojnë aftësi raportimi në aplikacionet e tyre. Është një server raportimi i pavarur dhe i integruar që ofron funksione raportimi dhe analitike. Me JasperReports, ju mund të gjeneroni raporte profesionale, duke përfshirë imazhe, grafikët dhe grafikët. Ky mjet ju ndihmon gjithashtu të shkruani përmbajtje të pasur në ekran, printer dhe disa formate skedarësh. duke përfshirë HTML, PDF, XLS, RTF, CSV, XML, ODT dhe TXT.
Në këtë postim, ne do t'ju tregojmë se si të instaloni serverin JasperReports në Ubuntu 22.04.
Parakushtet
- Një server që ekzekuton Ubuntu 22.04.
- Një emër i vlefshëm domeni tregohet me IP-në e serverit tuaj.
- Një fjalëkalim rrënjësor është konfiguruar në server.
Instaloni Java JDK
JasperReports bazohet në Java, kështu që do t'ju duhet të instaloni Java JDK në serverin tuaj. Mund ta instaloni duke ekzekutuar komandën e mëposhtme:
apt install default-jdk unzip wget -y
Pasi të instalohet Java, mund të verifikoni versionin Java duke përdorur komandën e mëposhtme:
java --version
Ju do të merrni versionin Java në daljen e mëposhtme:
openjdk 11.0.16 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Instaloni dhe konfiguroni bazën e të dhënave MariaDB
Ju gjithashtu do të duhet të instaloni serverin e bazës së të dhënave MariaDB në sistemin tuaj. Mund ta instaloni me komandën e mëposhtme:
apt install mariadb-server -y
Pasi të instalohet MariaDB, hyni në MariaDB me komandën e mëposhtme:
mysql
Pasi të keni hyrë, krijoni një përdorues dhe vendosni një fjalëkalim me komandën e mëposhtme:
MariaDB [(none)]> grant all on *.* to identified by 'password';
Më pas, lani privilegjet dhe dilni nga guaska MariaDB me komandën e mëposhtme:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Instaloni serverin Tomcat
JasperReports funksionon në serverin Tomcat. Pra, do t'ju duhet ta instaloni atë në serverin tuaj.
Së pari, krijoni një përdorues dhe grup të dedikuar për Tomcat duke përdorur komandën e mëposhtme:
groupadd tomcat
useradd -s /bin/bash -g tomcat -d /opt/tomcat tomcat
Tjetra, krijoni një drejtori Tomcat me komandën e mëposhtme:
mkdir /opt/tomcat
Tjetra, shkarkoni Tomcat 8 nga faqja e tyre zyrtare duke përdorur komandën e mëposhtme:
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz
Më pas, nxirrni skedarin e shkarkuar në drejtorinë /opt/tomcat:
tar -xzvf apache-tomcat-8.5.82.tar.gz -C /opt/tomcat --strip-components=1
Më pas, vendosni lejen dhe pronësinë e duhur në drejtorinë Tomcat:
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/bin/*.sh'
Krijoni një skedar shërbimi Systemd për Tomcat
Më pas, do t'ju duhet të krijoni një skedar shërbimi systemd për të menaxhuar shërbimin Tomcat. Mund ta krijoni me komandën e mëposhtme:
nano /etc/systemd/system/tomcat.service
Shtoni rreshtat e mëposhtëm:
[Unit]
Description=Tomcat webs servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
RestartSec=10
Restart=always
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms1024M -Xmx2048M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
Ruani dhe mbyllni skedarin, më pas ringarkoni daemonin e sistemit për të aplikuar ndryshimet:
systemctl daemon-reload
Tjetra, filloni shërbimin Tomcat me komandën e mëposhtme:
systemctl start tomcat
Ju gjithashtu mund të kontrolloni statusin e shërbimit Tomcat me komandën e mëposhtme:
systemctl status tomcat
Do të merrni daljen e mëposhtme:
? tomcat.service - Tomcat webs servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-04 06:06:39 UTC; 6s ago
Process: 6867 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 6874 (java)
Tasks: 29 (limit: 4579)
Memory: 118.4M
CPU: 4.427s
CGroup: /system.slice/tomcat.service
??6874 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djav>
Sep 04 06:06:39 ubuntu2204 systemd[1]: Starting Tomcat webs servlet container...
Sep 04 06:06:39 ubuntu2204 startup.sh[6867]: Tomcat started.
Sep 04 06:06:39 ubuntu2204 systemd[1]: Started Tomcat webs servlet container.
Instaloni dhe konfiguroni JasperReports
Së pari, kaloni përdoruesin në Tomcat dhe shkarkoni skedarin JasperReports me komandën e mëposhtme:
su - tomcat
wget https://sourceforge.net/projects/jasperserver/files/JasperServer/JasperReports%20Server%20Community%20edition%208.0.0/TIB_js-jrs-cp_8.0.0_bin.zip
Pasi të përfundojë shkarkimi, hiqni skedarin e shkarkuar me komandën e mëposhtme:
unzip TIB_js-jrs-cp_8.0.0_bin.zip
Tjetra, kopjoni skedarin e pronës MySQL me komandën e mëposhtme:
cp jasperreports-server-cp-8.0.0-bin/buildomatic/sample_conf/mysql_master.properties jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.properties
Më pas, modifikoni skedarin e pronës MySQL duke përdorur komandën e mëposhtme:
nano jasperreports-server-cp-8.0.0-bin/buildomatic/default_master.properties
Përcaktoni shtegun tuaj Tomcat dhe detajet e konfigurimit të bazës së të dhënave siç tregohet më poshtë:
CATALINA_HOME = /opt/tomcat
CATALINA_BASE = /opt/tomcat
dbHost=localhost
dbUsername=master
dbPassword=password
encrypt = true
Ruani dhe mbyllni skedarin dhe më pas instaloni JasperReports me komandën e mëposhtme:
cd jasperreports-server-cp-8.0.0-bin/buildomatic/
./js-install-ce.sh
Pasi të përfundojë instalimi, do të merrni daljen e mëposhtme:
[echo] Found Groovy in import lib directory
deploy-webapp-datasource-configs:
[echo] --- (app-server.xml:deploy-webapp-datasource-configs) ---
[echo] jsEdition = ce
[echo] warFileDistSourceDir = /opt/tomcat/jasperreports-server-cp-8.0.0-bin/buildomatic/../jasperserver.war
[echo] warTargetDir = /opt/tomcat/webapps/jasperserver
[echo] webAppName = jasperserver
[echo] webAppNameCE = jasperserver
[echo] webAppNamePro = jasperserver-pro
[echo] webAppNameSrc = jasperserver
[echo] webAppNameDel = jasperserver, warTargetDirDel = /opt/tomcat/webapps/jasperserver
[copy] Copying 9 files to /opt/tomcat/webapps/jasperserver
scalableAdhoc-refinement:
deploy-webapp-ce:
install-normal-ce:
[echo] Installation successfully completed!
BUILD SUCCESSFUL
Total time: 1 minute 26 seconds
Checking Ant return code: OK
----------------------------------------------------------------------
Më pas, modifikoni skedarin e konfigurimit të politikës Tomcat:
nano /opt/tomcat/conf/catalina.policy
Shtoni rreshtat e mëposhtëm:
grant codeBase "file:/groovy/script" {
permission java.io.FilePermission "${catalina.home}${file.separator}webapps${file.separator}
jasperserver-pro${file.separator}WEB-INF${file.separator}classes${file.separator}-", "read";
permission java.io.FilePermission "${catalina.home}${file.separator}webapps${file.separator}
jasperserver-pro${file.separator}WEB-INF${file.separator}lib${file.separator}*", "read";
permission java.util.PropertyPermission "groovy.use.classvalue", "read";
};
Ruani dhe mbyllni skedarin, më pas modifikoni skedarin e konfigurimit të aplikacionit:
nano /opt/tomcat/webapps/jasperserver/WEB-INF/applicationContext.xml
Shtoni rreshtat e mëposhtëm:
<bean id="reportsProtectionDomainProvider" class="com.jaspersoft.jasperserver.api.
engine.jasperreports.util.PermissionsListProtectionDomainProvider">
<property name="permissions">
<list>
<bean class="java.io.FilePermission">
<constructor-arg value="${catalina.home}${file.separator}webapps
${file.separator}jasperserver-pro${file.separator}
WEB-INF${file.separator}classes${file.separator}-"/>
<constructor-arg value="read"/>
</bean>
<bean class="java.io.FilePermission">
<constructor-arg value="${catalina.home}${file.separator}webapps
${file.separator}jasperserver-pro${file.separator}WEB-INF
${file.separator}lib${file.separator}*"/>
<constructor-arg value="read"/>
</bean>
</list>
</property>
</bean>
Ruani dhe mbyllni skedarin, pastaj dilni nga përdoruesi Tomcat:
exit
Më pas, rinisni shërbimin Tomcat për të aplikuar ndryshimet.
systemctl restart tomcat
Hyni në ndërfaqen e internetit të JasperReports
Në këtë pikë, JasperReports është instaluar dhe konfiguruar. Tani mund ta përdorni atë duke përdorur URL-në http://YOUR_SERVER_IP_ADDRESS:8080/jasperserver/. Ju duhet të shihni faqen e hyrjes në JasperReports:
Jepni emrin e përdoruesit: jasperadmin dhe fjalëkalimin: jasperadmin më pas klikoni në butonin Identifikohu. Ju duhet të shihni pultin e JasperReports në faqen e mëposhtme:
Konfiguro Nginx si një përfaqësues të kundërt për JasperReports
Së pari, instaloni paketën e serverit në internet Nginx me komandën e mëposhtme:
apt install nginx
Tjetra, krijoni një skedar të konfigurimit të hostit virtual Nginx me komandën e mëposhtme:
nano /etc/nginx/conf.d/jasperreports.conf
Shtoni konfigurimet e mëposhtme:
upstream tomcat {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
server_name jasper.example.com;
location = / {
return 301 http://jasper.example.com/jasperserver/;
}
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat/;
}
}
Ruani dhe mbyllni skedarin dhe më pas verifikoni konfigurimin e Nginx:
nginx -t
Do të merrni daljen e mëposhtme:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Më pas, ringarkoni shërbimin Nginx për të aplikuar ndryshimet e konfigurimit:
systemctl restart nginx
Ju mund të verifikoni statusin Nginx duke përdorur komandën e mëposhtme:
systemctl status nginx
Ju duhet të shihni daljen e mëposhtme:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-09-04 14:51:10 UTC; 7s ago
Docs: man:nginx(8)
Process: 7644 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 7645 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 7646 (nginx)
Tasks: 3 (limit: 4579)
Memory: 3.3M
CPU: 45ms
CGroup: /system.slice/nginx.service
??7646 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??7647 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
??7648 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Sep 04 14:51:10 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 04 14:51:10 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Tani mund të përdorni JasperReports tuaj duke përdorur URL-në http://jasper.example.com.
konkluzioni
Në këtë postim, mësuat se si të instaloni JasperReports në Ubuntu 22.04. Ju gjithashtu mësuat se si të konfiguroni Nginx si një përfaqësues të kundërt për JasperReports. Tani mund ta përdorni këtë mjet për të gjeneruar dhe futur raporte në aplikacionin Java ose jo-Java.