- Создаем пользователя, от имени которого будем запускать Tomcat.
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
- Загружаем последнюю версию Tomcat 9.x (нам не подойдет Tomcat версии 10, т.к. он использует пакет jakarta)
URL на последнюю версию копируем отсюда: /bin/apache-tomcat-VERSION.tar.gz. Для версии 9.0.68:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz -P /tmp
- Распаковываем:
sudo tar -xf /tmp/apache-tomcat-9.0.68.tar.gz -C /opt/tomcat/ (Tab для автодополнения имени архива)
rm /tmp/apache-tomcat-9.0.68.tar.gz - удалям архив
- Для последующих обновлений создаем универсальную ссылку
sudo ln -s /opt/tomcat/apache-tomcat-9.0.68 /opt/tomcat/latest
- Даем доступ юзеру
tomcatк каталогу:
sudo chown -R tomcat: /opt/tomcat
- Делаем скрипты
*.shисполняемыми:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
- Создаем tomcat.service:
sudo mcedit /etc/systemd/system/tomcat.service
Копируем содержимое tomcat.service: Shift+Mouse Right Click, F2, F10 в mcedit
Не забываем поправить JAVA_HOME на наш: echo ${JAVA_HOME}
- Добавляем внутри tomcat-users права на администрирование:
<user username="tomcat" password="пароль_на_администрирование_tomcat" roles="tomcat,manager-gui,admin-gui"/>
sudo mcedit /opt/tomcat/latest/conf/tomcat-users.xml
sudo cat /opt/tomcat/latest/conf/tomcat-users.xml
- Разрешаем администрирование Tomcat снаружи (для демо приложения допустимо, убедитесь что пароль у вас не tomcat)
Комментируем или удаляем Valve с разрешением только для localhost:
sudo mcedit /opt/tomcat/latest/webapps/manager/META-INF/context.xml
sudo mcedit /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
- Рестартуем сервисы:
sudo systemctl daemon-reload
- Запускаем Tomcat и проверяем статус:
sudo systemctl enable --now tomcat
sudo systemctl status tomcat
Q для выхода
- Если у вас открыт наружу порт 8080, уже можно посмотреть результат: http://javaops-demo.ru:8080
Иначе откройте его:
sudo ufw allow 8080/tcp
sudo systemctl stop tomcat.service - stop
sudo systemctl start tomcat.service - start
sudo systemctl daemon-reload - reload tomcat java opts