**************************************************************************************************** Установка TomCat на Ubuntu 23.04 по руководству из https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804 ```sh ssh administrator@10.101.1.3 -p 22 ``` Обновляем пакеты: ```sh sudo apt-get update ``` Устанавливаем Java Development Kit 8 (не ниже 8й версии) (так старая установиться: sudo apt-get install default-jdk) ```sh sudo apt install openjdk-21-jdk openjdk-21-jre -y && java -version ``` Создаём группу для томкат пользователя: ```sh sudo groupadd tomcat ``` Создаём пользователя: ```sh sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat ``` Скачиваю tomcat: ```sh cd /tmp && curl -O https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.30/bin/apache-tomcat-10.1.30.tar.gz ``` Извлекаю tomcat: ```sh sudo mkdir /opt/tomcat && sudo tar xzvf apache-tomcat-10*.tar.gz -C /opt/tomcat --strip-components=1 ``` Обновляю владельца папки: ```sh cd /opt/tomcat && sudo chown tomcat:tomcat -R /opt/tomcat && sudo chgrp -R tomcat /opt/tomcat && sudo chmod -R g+r conf && sudo chmod g+x conf && sudo chown -R tomcat webapps/ work/ temp/ logs/ ``` Указываем где находится java: ```sh sudo update-java-alternatives -l Выдаст: /usr/lib/jvm/java-1.21.0-openjdk-amd64 sudo mcedit /etc/environment Записать: JAVA_HOME="/usr/lib/jvm/java-1.21.0-openjdk-amd64" echo $JAVA_HOME ``` Пропишу на всяк случай и $CATALINA_HOME (не обязательно) ```sh sudo mcedit /etc/environment Записать: CATALINA_HOME="/opt/tomcat" echo $CATALINA_HOME ``` Создаём сервис для автозапуска в Ubuntu 16: https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04): ```sh sudo mcedit /etc/systemd/system/tomcat.service ``` И записываем в него следующее содержимое: ```conf [Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.21.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 ``` Затем: ```sh sudo systemctl daemon-reload && sudo systemctl start tomcat && sudo systemctl status tomcat ``` Для автозапуска сервиса томката выполнить команду: ```sh sudo systemctl enable tomcat ``` Разрешаем порт в фаерволе: ```sh sudo ufw allow 8080 ``` Для использования менеджера веб. приложений томката настраиваем пользователя: ```sh sudo mcedit /opt/tomcat/conf/tomcat-users.xml ``` В этот файл добавить роли в раздел ... запихнуть: ```xml ``` Также закоментить содержимое тега Context в sudo mcedit $CATALINA_HOME/webapps/manager/META-INF/context.xml см.: http://tomcat.apache.org/tomcat-8.0-doc/manager-howto.html#Configuring_Manager_Application_Access ```xml ``` Для того чтобы поменять порт на 80 нужно в: sudo mcedit /opt/tomcat/conf/server.xml ```xml ``` Также при помощи authbind разрешить не-root программе быть назначенными младшим портам: ```sh sudo apt-get install authbind && sudo touch /etc/authbind/byport/80 && sudo chmod 500 /etc/authbind/byport/80 && sudo chown tomcat /etc/authbind/byport/80 ``` Создать файл $CATALINA_HOME/bin/setenv.sh и добавить строку: ```conf CATALINA_OPTS="-Djava.net.preferIPv4Stack=true" AUTHBIND=yes ``` Также заменить в $CATALINA_HOME/bin/startup.sh заменить: exec "$PRGDIR"/"$EXECUTABLE" start "$@" на ```conf exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@" ``` Так как размер WAR архива может быть большим чем 52428800 байт то в файле sudo mcedit /opt/tomcat/webapps/manager/WEB-INF/web.xml увеличиваем параметр "max-file-size" до 100000000 байт. Перезагружаю томкат: ```sh sudo service tomcat restart ``` Останавливаю томкат: ```sh sudo service tomcat stop ``` Теперь можно запускать WEB интерфейс и деплоить проект: ```sh start http://91.215.138.115:8090 ```