Как установить Apache Tomcat в Ubuntu

Если вы хотите запускать веб-страницы, включающие кодирование Java Server Page или Java Servlets, вы можете использовать Apache Tomcat. Это открытый веб-сервер и контейнер сервлетов, выпущенный Фондом программного обеспечения Apache.

Tomcat может использоваться как самостоятельный продукт с собственным веб-сервером, или его можно объединить с другими веб-серверами, такими как Apache или IIS. Самая последняя версия Tomcat – 9.0.14, она основана на Tomcat 8 и 8.5 и реализует Servlet 4.0, JSP 2.2.

Читайте также: Как установить Apache Tomcat 9 в CentOS/RHEL

В новой версии были внесены следующие улучшения:

  • Добавлена поддержка HTTP/2.
  • Добавлена поддержка использования OpenSSL для поддержки TLS с коннекторами JSSE.
  • Добавлена поддержка виртуальных хостов TLS (SNI).

В этом руководстве мы покажем вам, как установить Apache Tomcat 9 в Ubuntu 18.10 и более старых версиях Ubuntu.

Шаг 1: Установка Java

Для запуска веб-приложений Java, Tomcat требует установки Java на сервере. Для выполнения этого требования мы установим OpenJDK, как показано.

$ sudo apt update
$ sudo apt install default-jdk

Шаг 2: Создание пользователя Tomcat

Для обеспечения безопасности Tomcat должен работать от имени не привилегированного пользователя, например, не от имени root. Поэтому мы создадим пользователя и группу tomcat, от имени которых будет запускаться служба. Начнем с создания группы tomcat:

$ sudo groupadd tomcat

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

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

Теперь мы готовы перейти к следующему этапу и загрузить Tomcat.

Шаг 3: Установка Apache Tomcat

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

На момент написания этого учебного пособия последняя версия Tomcat9.0.14. Чтобы загрузить эту версию, измените текущий каталог на что-то другое. Например, вы можете использовать /tmp:

# cd /tmp

А затем, используя команду wget, загрузите архив Tomcat:

$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
$ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

Если вы хотите проверить хэш-сумму sha512 файла, вы можете выполнить:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

Полученное значение (хэш) для обоих файлов должно быть одинаковым.

Как было упомянуто ранее, мы собираемся установить Tomcat в /opt/tomcat. Нам нужно создать этот каталог:

$ sudo mkdir /opt/tomcat

И теперь мы можем извлечь загруженный пакет в этот новый каталог:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

Теперь перейдите в /opt/tomcat, откуда мы обновим владельца и разрешения папки:

# cd /opt/tomcat

И установите группового владельца /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.

Шаг 4: Создание файла службы SystemD для Tomcat

Поскольку мы хотим запускать Tomcat как службу, нам потребуется файл, который поможет нам легко управлять процессом. Для этой цели мы создадим файл службы systemd. Tomcat должен будет знать, где расположена Java на вашей системе.

Чтобы найти это местоположение, используйте следующую команду:

$ sudo update-java-alternatives -l

Вывод этой команды покажет вам местоположение JAVA_HOME.

Find Java Home

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

$ sudo vim  /etc/systemd/system/tomcat.service

Вставьте код ниже в файл:

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

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -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

Убедитесь, что JAVA_HOME установлен для вашей системы. Когда вы будете готовы, сохраните файл и закройте его. Теперь, используя команду ниже, перезагрузите демон systemd, чтобы он мог найти наш новый файл службы:

$ sudo systemctl daemon-reload

Затем запустите службу Tomcat:

$ sudo systemctl start tomcat

Вы можете проверить статус службы с помощью:

$ sudo systemctl status tomcat
Verify Apache Tomcat Status

Вы можете теперь протестировать Tomcat в вашем браузере, используя IP-адрес вашей системы, за которым следует порт службы 8080.

http://ip-address:8080

Результат, который вы должны увидеть, должен быть аналогичен тому, что показано на изображении ниже:

Apache Tomcat Web Page

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

$ sudo ufw allow 8080

Если вы хотите, чтобы Tomcat запускался при загрузке системы, выполните:

$ systemctl enable tomcat

Шаг 5: Настройка Apache Tomcat

Tomcat имеет веб-приложение управления, которое поставляется предустановленным. Для его использования нам потребуется настроить аутентификацию в нашем файле tomcat-users.xml. Откройте и отредактируйте этот файл с помощью вашего любимого текстового редактора:

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

Мы собираемся добавить пользователя, который сможет получить доступ к интерфейсам менеджера и администратора. Чтобы настроить такого пользователя, между тегами <tomcat-users> </tomcat-users> добавьте следующую строку:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

Убедитесь, что вы изменили:

  • Имя пользователя – на имя пользователя, которое вы хотите аутентифицировать.
  • Пароль – на пароль, который вы хотите использовать для аутентификации.
Configure Apache Tomcat

Поскольку по умолчанию доступ к Менеджеру хостов и Менеджеру ограничен, мы захотим либо удалить, либо изменить эти ограничения. Для внесения таких изменений вы можете загрузить следующие файлы:

Для приложения Менеджера:

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

Для приложения Менеджера хостов:

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

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

Allow Apache Tomcat Access

Чтобы наши изменения вступили в силу, перезагрузите службу tomcat с помощью:

$ sudo systemctl restart tomcat 


Теперь вы можете протестировать приложение
manager, обратившись по адресу http://ipaddress:8080/manager/. При запросе имени пользователя и пароля используйте те, которые вы настроили ранее. Интерфейс, который вы должны увидеть после этого, выглядит так:

Access Apache Tomcat Manager

Для доступа к Менеджеру хостов вы можете использовать http://ip-address:8080/host-manager/.

Access Apache Tomcat Virtual Host Manager

Используя менеджер виртуальных хостов, вы можете создавать виртуальные хосты для ваших приложений Tomcat.

Шаг 6: Тестирование Apache Tomcat путем создания тестового файла

Вы можете проверить, все ли работает гладко, создав тестовый файл внутри каталога /opt/tomcat/webapps/ROOT/.

Давайте создадим такой файл:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

Внутри этого файла вставьте следующий код:

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

Сохраните файл и установите владение, как показано.

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

Теперь загрузите этот файл в вашем браузере, используя http://ip-address:8080/tecmint.jsp.

Test Apache Tomcat

Вот и все! Вы завершили настройку вашего сервера Apache Tomcat и запустили свой первый код на Java. Надеемся, что процесс был легким и простым для вас. Если у вас возникнут проблемы, пожалуйста, поделитесь ими через форму комментариев ниже.

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/