This commit is contained in:
Igor I
2025-02-25 19:29:07 +05:00
parent c0713d94a3
commit c060952ee2
5 changed files with 249 additions and 141 deletions

159
Tomcat_install.md Normal file
View File

@ -0,0 +1,159 @@
****************************************************************************************************
Установка 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
```
В этот файл добавить роли в раздел <tomcat-users>...</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
```xml
<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
```xml
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
```
Также при помощи 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
```