Как установить Apache Tomcat 8 на Raspberry Pi, Orange Pi и Banana Pi под Linux Ubuntu 16.04.1 LTS 3.4.113-sun8i (ARMBIAN 5.25)

Apache Tomcat 8.5.5Apache Tomcat — это веб-сервер и контейнер сервлетов, который используется для обслуживания приложений Java.

Tomcat — это открытая реализация технологий Java Servlet и JavaServer Pages, выпущенных Apache Software Foundation. В этом руководстве описывается базовая установка и настройка Tomcat 8 на Raspberry Pi, Orange Pi и Banana Pi под Linux Ubuntu 16.04.1 LTS.

Для создания статьи был выбран Orange Pi PC и операционная система Linux Ubuntu 16.04.1 LTS 3.4.113-sun8i (ARMBIAN 5.25).

Установка Java

Tomcat 8 требует, чтобы Java была установлена на сервере, чтобы можно было выполнить любое Java веб-приложение. Мы можем удовлетворить это требование, установив OpenJDK с помощью apt-get.

Во-первых, обновите свой индекс пакетов apt-get:

sudo apt-get update

Затем установите Java Development Kit с помощью apt-get:

sudo apt-get install default-jdk

Теперь, когда установлена Java, мы можем создать пользователя tomcat, который будет использоваться для запуска службы Tomcat.

Создание Tomcat пользователя

В целях безопасности, Tomcat должен быть запущен как непривилегированный пользователь (т.е. не root). Мы создадим нового пользователя и группу, которые будут запускать службу Tomcat.

Сначала создайте новую группу tomcat:

sudo groupadd tomcat

Затем создайте нового пользователя tomcat. Мы сделаем этого пользователя членом группы tomcat с домашним каталогом /opt/tomcat (где мы будем устанавливать Tomcat) и с shell-ом /bin/false (чтобы никто не смог войти в учетную запись):

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Теперь, когда наш пользователь tomcat настроен, давайте загрузим и установим Tomcat 8.

Установка Tomcat 8

Лучший способ установить Tomcat 8 — это загрузить последнюю версию, а затем настроить её вручную.

Найдите последнюю версию Tomcat 8 на странице загрузки Tomcat. Для написания статьи я использовал версию 8.5.43, но вы можете использовать более позднюю стабильную версию, если она доступна. В разделе Binary Distributions, затем в списке Core скопируйте ссылку на tar.gz.

Затем перейдите в каталог /tmp на вашем сервере, эта папка предназначена для хранения временных файлов, которые нам не понадобятся после извлечения содержимого Tomcat. Более того, система сама должна очищать их при перезагрузке:

cd /tmp

Используйте curl для загрузки ссылки, которую вы скопировали с веб-сайта Tomcat:

curl -O https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz

Мы установим Tomcat в каталог /opt/tomcat. Создайте каталог, затем извлеките архив с помощью следующих команд:

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

Далее, мы можем установить соответствующие права доступа пользователей для нашей установки.

Обновление прав

Пользователь tomcat, который мы настроили, должен иметь доступ к установке Tomcat.

Перейдите в каталог, в котором мы распаковали Tomcat:

cd /opt/tomcat

Дайте группе tomcat право собственности на весь каталог:

sudo chgrp -R tomcat /opt/tomcat

Затем дайте группе tomcat права чтения и выполнения на каталог conf и всё его содержимое:

sudo chmod -R g+r conf
sudo chmod g+x conf

Сделайте пользователя tomcat владельцем каталогов webapps, work, temp и logs:

sudo chown -R tomcat webapps/ work/ temp/ logs/

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

Создание файла службы systemd

Tomcat должен знать, где установлена Java. Этот путь обычно называют JAVA_HOME. Самый простой способ найти этот пить — запустить эту команду:

sudo update-java-alternatives -l

Результат:

java-1.8.0-openjdk-armhf 1074 /usr/lib/jvm/java-1.8.0-openjdk-armhf
java-gcj-5 /usr/lib/jvm/java-gcj-5

Задаём переменные среды JAVA_HOME, JDK_HOME, JRE_HOME и добавляем в PATH:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf
export JDK_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf/jre
export PATH="$PATH:$JAVA_HOME/bin:$JRE_HOME/bin"

Если переменная JAVA_HOME у вас установлена, тогда не нужно выполнять выше упомянутые команды.

Теперь мы можем создать файл службы systemd. Откройте файл tomcat.service в каталоге /etc/systemd/system, набрав:

sudo nano /etc/systemd/system/tomcat.service

Вставьте следующее содержимое в файл службы. Измените значение JAVA_HOME, если необходимо, чтобы соответствовать значению, которое вы нашли в вашей системе. Вы также можете изменить параметры распределения памяти, указанные в CATALINA_OPTS:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms256M -Xmx768M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл:

CTRL-X, Y, ENTER

Затем перезагрузите systemd daemon, чтобы он знал о нашем файле:

sudo systemctl daemon-reload

Запустите службу Tomcat, набрав:

sudo systemctl start tomcat

Проверьте, чтобы Tomcat запустился без ошибок, набрав:

sudo systemctl status tomcat

Настройка брандмауэра и тестирование сервера Tomcat

Теперь, когда служба Tomcat запущена, мы можем проверить, доступна ли страница по умолчанию.

Прежде чем мы это сделаем, нам необходимо настроить брандмауэр, чтобы наши запросы могли получить доступ к службе.

Tomcat использует порт 8080 для приема обычных запросов. Разрешить трафик на этот порт, набрав:

sudo ufw allow 8080

Если у вас не установлен ufw или отключён, тогда эту команду не нужно выполнить.

Теперь вы можете открыть страницу по умолчанию, перейдя на ваш домен или IP-адрес, а затем: 8080 в веб-браузере:

http://<домен сервера или IP-адрес>:8080

В моём случае это:

http://192.168.0.100:8080

Однако, если вы щелкнете ссылки для приложения-менеджера, например, вам будет отказано в доступе. Мы можем настроить этот доступ далее.

Если вы смогли успешно получить доступ к Tomcat, теперь самое подходящее время для включения служебного файла, чтобы Tomcat автоматически запускался при загрузке:

sudo systemctl enable tomcat

Настройка интерфейса Tomcat Web Management

Чтобы использовать веб-приложение менеджера, которое поставляется с Tomcat, мы должны добавить логин на сервер Tomcat. Мы сделаем это, отредактировав файл tomcat-users.xml:

sudo nano /opt/tomcat/conf/tomcat-users.xml

Вы хотите добавить пользователя, который может получить доступ к manager-gui и admin-gui (веб-приложениям, поставляемым с Tomcat). Вы можете сделать это, указав пользователя, аналогичный приведенному ниже примеру, между тегами tomcat-users. Обязательно измените имя пользователя и пароль на что-то безопасное:

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
 version="1.0">
 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
</tomcat-users>

Сохраните и закройте файл.

По умолчанию более новые версии Tomcat ограничивают доступ к приложениям Manager и Host Manager для подключений, поступающих с самого сервера. Поскольку мы устанавливаем на удаленную машину, вы, вероятно, захотите удалить или изменить это ограничение. Чтобы изменить ограничения IP-адресов на них, откройте соответствующие файлы context.xml.

Для приложения Manager введите:

sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml

Для приложения Manager app введите:

sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

Внутри закомментируйте ограничение IP-адреса, чтобы разрешать подключения из любого места. Кроме того, если вы хотите разрешить доступ только к соединениям, исходящим из вашего собственного IP-адреса, вы можете добавить свой общедоступный IP-адрес в список:

Файл context.xml в оригинале:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

Файл context.xml после удаления <Valve />:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >

</Context>

Сохраните и закройте файлы.

Чтобы внести наши изменения в силу, перезапустите службу Tomcat:

sudo systemctl restart tomcat

Доступ к веб-интерфейсу

Теперь, когда мы создали пользователя, мы снова можем обратиться к веб-интерфейсу управления в веб-браузере. Еще раз, вы можете перейти к интерфейсу, указав доменное имя вашего сервера или IP-адре и порт 8080 в вашем браузере:

http://<домен сервера или IP-адрес>:8080

Страница веб-интерфейса:
Apache Tomcat 8.5.5 - веб-интерфейс

Заключение

Установка Tomcat 8 завершена! Теперь вы можете развернуть свои собственные веб-приложения Java!

Похожие записи

Комментарии 1

Добавить комментарий для Jasonnah Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *