Как установить JasperReports на Ubuntu 22.04

JasperReports – это платформа с открытым исходным кодом для создания, распространения и управления отчетами. Это библиотека классов Java; веб-разработчики, создающие веб-сайты на Java и нуждающиеся в добавлении возможностей создания отчетов в свои приложения, используют этот инструмент.

JasperReports также может быть использован в Java-приложениях типа Java EE или других веб-приложениях для создания динамического контента. В этом руководстве мы покажем, как установить Jasper Reports на Ubuntu 22.04.

Шаг 1. Вход на сервер

Сначала войдите на свой сервер Ubuntu 22.04 по SSH как пользователь root:

ssh root@IP_Address -p Port_number

Вам нужно заменить „IP_Address“ и „Port_number“ на соответствующие IP-адрес и номер порта SSH вашего сервера. Кроме того, замените „root“ на имя пользователя системы с правами sudo.

Проверить, установлена ли на сервере нужная версия Ubuntu, можно с помощью следующей команды:

lsb_release -a

Вы должны получить следующее сообщение:

No LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 22.04.2 LTSRelease: 22.04Codename: jammy

Перед началом работы необходимо убедиться в том, что все пакеты ОС Ubuntu, установленные на сервере, являются актуальными. Это можно сделать, выполнив следующие команды:

apt update -y

Шаг 2. Создание системного пользователя

Существует возможность установить Jasper Reports на машину Ubuntu 22.04 без использования программы установки; мы будем устанавливать его вручную. Сначала нам необходимо установить Tomcat, и мы установим Tomcat под новым системным пользователем. Выполним приведенную ниже команду для добавления нового системного пользователя.

useradd -r tomcat -m -d /opt/tomcat --shell /bin/bash

Шаг 3. Установить MariaDB

Сервер Jasper Reports поддерживает PostgreSQL, MySQL/MariaDB, Oracle, DB2 и SQL-серверы. На этом шаге мы установим сервер MariaDB из репозитория. Для этого просто выполните следующую команду:

apt install mariadb-server
MariaDB будет запущена на машине Ubuntu после установки; теперь давайте создадим пользователя MySQL с полными привилегиями.
mysql

Находясь в оболочке MySQL, выполните эти команды для создания пользователя базы данных.

MariaDB [(none)]> grant all on *.* to master@localhost identified by 'm0d1fyth15';
MariaDB [(none)]> flush privileges;

Шаг 4. Установить Tomcat

На предыдущем шаге мы создали нового системного пользователя. Теперь на этом шаге мы собираемся установить Tomcat. Но сначала нам необходимо установить Java. Выполним приведенную ниже команду для установки стандартного JDK версии 11, который доступен во встроенных репозиториях Ubuntu 22.04 с помощью следующей команды:

apt install default-jdk unzip wget nano -y

На момент написания этого руководства последней стабильной версией Tomcat для загрузки является версия 9.0.76. Вы можете зайти на сайт h и проверить, не выпустили ли они более свежую версию. Чтобы приступить к установке, сначала загрузим двоичный файл дистрибутива.

su - tomcat
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz -O tomcat-9.0.76.tar.gz

Домашним каталогом нашего пользователя „tomcat“ является /opt/tomcat, и этот каталог был создан при добавлении этого пользователя. И мы будем устанавливать Tomcat в этот каталог. Давайте теперь извлечем скачанный файл.

tar -xzvf tomcat-9.0.76.tar.gz -C /opt/tomcat --strip-components=1

Сейчас каталог /opt/tomcat содержит все файлы Tomcat. В этом можно убедиться с помощью данной команды.

ls -lh /opt/tomcat

Команда выдаст следующий результат:

tomcat@ubuntu22:~$ ls -lh /opt/tomcat/
total 12M
-rw-r----- 1 tomcat tomcat 20K Jun 5 07:17 BUILDING.txt
-rw-r----- 1 tomcat tomcat 6.1K Jun 5 07:17 CONTRIBUTING.md
-rw-r----- 1 tomcat tomcat 56K Jun 5 07:17 LICENSE
-rw-r----- 1 tomcat tomcat 2.3K Jun 5 07:17 NOTICE
-rw-r----- 1 tomcat tomcat 3.4K Jun 5 07:17 README.md
-rw-r----- 1 tomcat tomcat 6.8K Jun 5 07:17 RELEASE-NOTES
-rw-r----- 1 tomcat tomcat 17K Jun 5 07:17 RUNNING.txt
drwxr-x--- 2 tomcat tomcat 4.0K Jun 19 13:43 bin
drwx------ 2 tomcat tomcat 4.0K Jun 5 07:17 conf
drwxr-x--- 2 tomcat tomcat 4.0K Jun 19 13:43 lib
drwxr-x--- 2 tomcat tomcat 4.0K Jun 5 07:17 logs
drwxr-x--- 2 tomcat tomcat 4.0K Jun 19 13:43 temp
-rw-rw-r-- 1 tomcat tomcat 12M Jun 5 07:32 tomcat-9.0.76.tar.gz
drwxr-x--- 7 tomcat tomcat 4.0K Jun 5 07:17 webapps
drwxr-x--- 2 tomcat tomcat 4.0K Jun 5 07:17 work

Теперь выйдите из под пользователя „tomcat“ и вернитесь в права root или sudo.

exit

Нам необходимо создать файл systemd для управления службой Tomcat. Давайте создадим файл службы systemd для Tomcat.

nano /etc/systemd/system/tomcat.service

Вставьте в файл службы systemd следующие слова и сохраните его.

[Unit]
Description=Apache Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment="CATALINA_OPTS=-Xms1024M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReload=/bin/kill $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Сохраните файл, выйдите из редактора nano и перезагрузите systemd, чтобы изменения вступили в силу.

systemctl daemon-reload

На данный момент мы не собираемся запускать Tomcat.

Шаг 5. Загрузка и развертывание JasperReports

На этом шаге мы загрузим zip-файл сервера Jasper Reports и установим его вручную. На момент написания этой статьи последней доступной версией является 8.2.0. Проверить наличие более свежей версии можно на сайте https://sourceforge.net/projects/jasperserver/files/JasperServer/.

su - tomcat$ wget https://sourceforge.net/projects/jasperserver/files/JasperServer/JasperReports%20Server%20Community%20Edition%208.2.0/TIB_js-jrs-cp_8.2.0_bin.zip/download -O jasperreports_8.2.0.zip

После загрузки мы можем непосредственно извлечь его.

unzip jasperreports_8.2.0.zip

Сервер Jasper Reports поддерживает серверы PostgreSQL, MySQL, Oracle, DB2 и SQL. В данной статье мы будем использовать MySQL (MariaDB), и он у нас уже установлен. Чтобы перейти к работе с файлом конфигурации Jasper Report, сначала скопируем файл конфигурации примера.

Далее скопируем файл /opt/jasperreports-server-cp-8.0.0-bin/buildomatic/sampe-conf/mysql.master_properties в каталог buildomatic как default_master.properties

cp -a jasperreports-server-cp-8.2.0-bin/buildomatic/sample_conf/mysql_master.properties jasperreports-server-cp-8.2.0-bin/buildomatic/default_master.properties

Сейчас отредактируем jasperreports-server-cp-8.2.0-bin/buildomatic/default_master.properties

nano jasperreports-server-cp-8.2.0-bin/buildomatic/default_master.properties

Добавим две строки

CATALINA_HOME = /opt/tomcatCATALINA_BASE = /opt/tomcat

Затем заменим часть конфигурации базы данных на следующую, и убедимся, что имя пользователя и база данных совпадают с ранее созданными.

dbHost=localhostdbUsername=masterdbPassword=m0d1fyth15

И установим encrypt в true.

encrypt = true

Выглядеть это должно так:

CATALINA_HOME = /opt/tomcat
CATALINA_BASE = /opt/tomcat
dbHost=localhost
dbUsername=master
dbPassword=m0d1fyth15
encrypt = true

Сохраним файл и выйдем.

Следующим шагом войдем в каталог buildomatic и запустим исполняемый файл js-install-ce.sh. Перед запуском этого исполняемого файла убедитесь, что Tomcat НЕ запущен.

cd jasperreports-server-cp-8.2.0-bin/buildomatic/$ ./js-install-ce.sh
Это позволит создать базы данных и развернуть jasperserver в Tomcat.

После этого отредактируем файл /opt/tomcat/conf/catalina.policy.

nano /opt/tomcat/conf/catalina.policy

Добавим в него следующее.

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";
};

Сохраним файл и выйдем.

Также необходимо отредактировать файл applicationContext.xml.

nano /opt/tomcat/webapps/jasperserver/WEB-INF/applicationContext.xml

Вставьте в список reportsProtectionDomainProvider* следующее.

После этого можно перейти по адресу http://YOUR_SERVER_IP_ADDRESS:8080/jasperserver/ для доступа к JasperReports Server, используя стандартные учетные данные.

username: jasperadminpassword: jasperadmin

После входа в систему можно увидеть панель управления

Шаг 6. Установка Nginx в качестве обратного прокси

Поскольку Tomcat по умолчанию работает на порту 8080, нам необходимо настроить обратный прокси, чтобы иметь возможность доступа к нему по порту 80 или 443. В этом шаге мы установим nginx и настроим его в качестве обратного прокси-сервера для сервера Jasper Reports.

apt install nginx

В Ubuntu 20.04 nginx будет запущен после установки. Теперь пришло время создать серверный блок для нашего сервера Jasper Reports.

nano /etc/nginx/conf.d/jasperreports.conf

Вставьте в файл следующую конфигурацию. Убедитесь, что вы используете реальное имя домена или поддомена.

upstream tomcat {
    server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
    }
server {
    server_name jasperreports.yourdomain.com;
location = / {
    return 301 http://jasperreports.yourdomain.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/;
    }
}

Затем перезапустите службу nginx.

systemctl restart nginx

Сейчас вы должны иметь доступ к вашему сайту JasperReports по адресу https://jasperreports.yourdomain.com.

Вот и все! Вы успешно установили JasperReports Server на Ubuntu 22.04.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.rosehosting.com

Комментарии (0)