Files
Ubuntu_docs/Tomcat_install.md
Igor I c060952ee2 +
2025-02-25 19:29:07 +05:00

5.5 KiB
Raw Blame History


Установка TomCat на Ubuntu 23.04 по руководству из https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804

ssh administrator@10.101.1.3 -p 22

Обновляем пакеты:

	sudo apt-get update

Устанавливаем Java Development Kit 8 (не ниже 8й версии) (так старая установиться: sudo apt-get install default-jdk)

	sudo apt install openjdk-21-jdk openjdk-21-jre -y &&
	java -version

Создаём группу для томкат пользователя:

	sudo groupadd tomcat

Создаём пользователя:

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

Скачиваю tomcat:

	cd /tmp &&
	curl -O https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.30/bin/apache-tomcat-10.1.30.tar.gz

Извлекаю tomcat:

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

Обновляю владельца папки:

	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:

	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 (не обязательно)

	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):

	sudo mcedit /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.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

Затем:

	sudo systemctl daemon-reload &&
	sudo systemctl start tomcat &&
	sudo systemctl status tomcat

Для автозапуска сервиса томката выполнить команду:

	sudo systemctl enable tomcat

Разрешаем порт в фаерволе:

	sudo ufw allow 8080

Для использования менеджера веб. приложений томката настраиваем пользователя:

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

В этот файл добавить роли в раздел ... запихнуть:

    <role rolename="tomcat"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager"/>
    <role rolename="admin-gui"/>
    <role rolename="admin"/>
    <user username="tomcat" password="igareb0s" roles="admin-gui, tomcat, manager-gui, manager-script, manager,admin"/>

Также закоментить содержимое тега 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

	<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>

Для того чтобы поменять порт на 80 нужно в: sudo mcedit /opt/tomcat/conf/server.xml

	<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>

Также при помощи authbind разрешить не-root программе быть назначенными младшим портам:

	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 и добавить строку:
		CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"
		AUTHBIND=yes
Также заменить в $CATALINA_HOME/bin/startup.sh заменить: exec "$PRGDIR"/"$EXECUTABLE" start "$@" на
		exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"

Так как размер WAR архива может быть большим чем 52428800 байт то в файле sudo mcedit /opt/tomcat/webapps/manager/WEB-INF/web.xml увеличиваем параметр "max-file-size" до 100000000 байт.

Перезагружаю томкат:

	sudo service tomcat restart

Останавливаю томкат:

	sudo service tomcat stop

Теперь можно запускать WEB интерфейс и деплоить проект:

start http://91.215.138.115:8090