Как установить Tomcat 9 на CentOS 7

baltun

Администратор
Сообщения
10.874
Реакции
2.584
Баллы
2.003
В этом руководстве описываются шаги, необходимые для установки Tomcat 9.0 на CentOS 7.

Установка OpenJDK.
Tomcat 9 требует Java SE 8 или более поздней версии. В этом уроке мы установим OpenJDK, реализация с открытым исходным кодом на платформе Java, которая является развитием по умолчанию Java для CentOS 7.
Код:
sudo yum install java-1.8.0-openjdk-devel

Запуск Tomcat в качестве пользователя root представляет собой угрозу безопасности и не считается наилучшей практикой. Мы создадим нового пользователя системы и группу с домашним каталогом /opt/tomcat который будет запускать службу Tomcat:
Код:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Скачиваем Tomcat 9 разархивируем и переносим в нужный каталог:
Код:
cd /tmp
wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
tar -xf apache-tomcat-9.0.14.tar.gz
sudo mv apache-tomcat-9.0.14 /opt/tomcat/

Tomcat 9 часто обновляется. Для того, чтобы иметь больше контроля над версиями и обновлениями, мы создадим символическую ссылку , latest которая будет указывать на директорию установки Tomcat:
Код:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.14 /opt/tomcat/latest
sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Создаем службу для запуска демона Tomcat:
Код:
sudo nano /etc/systemd/system/tomcat.service

Содержимое файла:
Код:
[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Включаем и смотрим статус службы:
Код:
sudo systemctl daemon-reload
sudo systemctl enable tomcat
sudo systemctl start tomcat
sudo systemctl status tomcat

Вывод статуса:
Код:
tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-11-15 20:47:50 UTC; 4s ago
  Process: 1759 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1767 (java)
   CGroup: /system.slice/tomcat.service

Открываем порт 8080 в фаерволе:
Код:
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Добавляем роли:
Код:
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Содержимое:
Код:
<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

Открывает доступ к Tomcat из интернета /opt/tomcat/latest/webapps/manager/META-INF/context.xml:
Код:
<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1" />
-->
</Context>

Открывает доступ для адреса например 41.41.41.41 /opt/tomcat/latest/webapps/manager/META-INF/context.xml:
Код:
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1|41.41.41.41" />
</Context>

Перезапускам Tomcat:
Код:
sudo systemctl restart tomcat

После всех настроек смотрим доступность http://<your_domain_or_IP_address>:8080
tomcat-home.jpg
 
Назад
Верх Низ