Установка Apache Tomcat на CentOS 7
Version 1.0
Author: Srijan Kishore
Last edited: 28 августа 2014 г.
Предварительное замечание
Этот материал основан на установке и настройке на сервере CentOS 7.0. Перед началом убедитесь, что у вас выполнена базовая установка CentOS 7 и что система имеет статический IP-адрес. В примерах ниже используется IP 192.168.0.100 и hostname server1.example.com — замените их на ваши значения.
Важно: в оригинальном руководстве в одном месте встречается опечатка IP как 192.68.0.100 — проверяйте адрес на вашей машине.
Требования и предпосылки
- Пользователь с правами root или sudo.
- Работающий сетевой интерфейс с фиксированным IP.
- Доступ в интернет для загрузки пакетов и архива Tomcat.
Коротко: Java (OpenJDK 7+), net-tools (по желанию), wget, unzip.
Установка Java и зависимостей
Сначала установите OpenJDK 7 (java-1.7.0-openjdk.x86_64) командой:
yum install java-1.7.0-openjdk.x86_64Проверьте версию Java:
java -versionПример вывода:
[root@server1 ~]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el7_0-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@server1 ~]#Установим полезные утилиты (если их нет):
yum install net-tools unzip wgetПримечание: в CentOS 7 для некоторых сетевых задач может использоваться iproute2 (команды ip), но net-tools (ifconfig/netstat) полезны для примеров и отладки.
Загрузка и распаковка Tomcat
Перейдите в /opt и загрузите архив Tomcat (пример для Tomcat 8.0.9):
cd /opt
wget http://ftp.nluug.nl/internet/apache/tomcat/tomcat-8/v8.0.9/bin/apache-tomcat-8.0.9.zip
unzip apache-tomcat-8.0.9.zip
mv apache-tomcat-8.0.9 tomcatВы можете скачать другую версию Tomcat, но следите за совместимостью с вашей версией Java.
Настройка переменных окружения
Создайте файл /etc/profile.d/script.sh со следующими строками:
vi /etc/profile.d/script.shВставьте:
#!/bin/bash
CATALINA_HOME=/opt/tomcat
PATH=$CATALINA_HOME/bin:$PATH
export PATH CATALINA_HOME
export CLASSPATH=.Сделайте файл исполняемым и примените переменные:
chmod +x /etc/profile.d/script.sh
source /etc/profile.d/script.shДалее дайте права на выполнение скриптам запуска Tomcat:
chmod +x $CATALINA_HOME/bin/startup.sh
chmod +x $CATALINA_HOME/bin/shutdown.sh
chmod +x $CATALINA_HOME/bin/catalina.shЗапуск Tomcat
Запустите сервер:
$CATALINA_HOME/bin/startup.shПример вывода при запуске:
[root@server1 ~]# $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@server1 ~]#Проверьте, что Tomcat слушает порт 8080:
netstat -an | grep 8080Пример:
[root@server1 ~]# netstat -an | grep 8080
tcp6 0 0 :::8080 :::* LISTEN
[root@server1 ~]#Если команда netstat недоступна — используйте ss:
ss -ltnp | grep 8080Настройка firewall-cmd (CentOS 7)
Откройте порт 8080 в зоне public:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reloadВажно: если у вас включён firewalld с другой зоной по умолчанию, используйте соответствующую зону или добавьте правило для IP/интерфейса.
Создание пользователей для Manager и Admin
Чтобы получить доступ к административным страницам (Manager, Host Manager), добавьте пользователей в файл конфигурации Tomcat:
vi $CATALINA_HOME/conf/tomcat-users.xmlПример фрагмента (вставляйте внутри тегов
Важно: В примере используется логин/пароль admin/admin — это небезопасно. Обязательно замените их на надёжные учётные данные. После редактирования перезапустите Tomcat:
cd $CATALINA_HOME
./bin/catalina.sh stop
./bin/catalina.sh startДоступ к веб-интерфейсу
Откройте в браузере:

Введите учётные данные, которые вы указали в tomcat-users.xml. После входа нажмите Manager App:

Пример списка приложений в Manager:

Поздравляем — Tomcat запущен и доступен.
Рекомендации по безопасности и жёсткой настройке
Важно:
- Никогда не используйте учётные данные по умолчанию (admin/admin) в production.
- Разрешайте доступ к интерфейсу управления только с доверенных IP (через firewall или прокси).
- Отключите или ограничьте Manager и Host Manager в production-среде.
- Рассмотрите использование HTTPS (настраивается через Connector в server.xml) и безопасных сертификатов.
- Проверьте SELinux: если он включён, возможно, потребуется настроить контексты или дать разрешения для /opt/tomcat.
Пример быстрого ограничения доступа по IP в конфигурации Manager (в server.xml или в context.xml приложения manager): используйте RemoteAddrValve, но применяйте осторожно и тестируйте изменения.
Systemd: запуск Tomcat как служба (рекомендуется)
Ручной запуск работает, но лучше создать systemd unit, чтобы Tomcat стартовал при загрузке и контролировался системой. Минимальные шаги:
- Создайте пользователя tomcat (без shell) и назначьте права на /opt/tomcat.
- Создайте unit-файл /etc/systemd/system/tomcat.service (пример не включён здесь — адаптируйте под вашу конфигурацию).
- Выполните: systemctl daemon-reload; systemctl enable tomcat; systemctl start tomcat.
Важно тестировать unit-файл и права доступа, чтобы сервис мог читать все необходимые файлы и запускался от непривилегированного пользователя.
Отладка и типичные проблемы
- Tomcat не стартует: смотрите логи в $CATALINA_HOME/logs/catalina.out и других логах каталога logs.
- Порт 8080 занят: используйте ss/netstat, измените Connector порт в conf/server.xml или остановите процесс, занимающий порт.
- Проблемы с правами: проверьте пользователя, от которого запускается Tomcat, и права на /opt/tomcat.
- SELinux блокирует доступ: временно проверьте, отключив SELinux в режим permissive, чтобы локализовать причину, затем применяйте политики.
Чек-лист по ролям
Для системного администратора:
- Проверить, что Tomcat запускается и слушает порт 8080.
- Добавить unit-файл systemd и включить автозапуск.
- Настроить ротацию логов (logrotate) для каталога logs.
Для разработчика:
- Убедиться, что среда исполнения Java совместима с приложениями.
- Деплоить WAR через Manager или копированием в webapps (в зависимости от политики).
- Тестировать приложение через менеджер и логировать ошибки.
Для инженера по безопасности:
- Заменить пароли и ограничить доступ к Manager/Host Manager.
- Включить HTTPS и настроить TLS.
- Проверить и настроить SELinux и firewall.
Критерии приёмки
- Tomcat успешно запускается и отвечает на HTTP-запросы по порту 8080.
- Доступ к Manager возможен с доверенного IP и только с валидной учётной записью.
- Логи не содержат ошибок при старте приложения и отсутствуют ошибки прав доступа.
- Сервис настроен на автоматический старт через systemd (опционально).
Тестовые сценарии (примеры)
- Проверка старта: systemctl start tomcat / $CATALINA_HOME/bin/startup.sh — ожидать статус ACTIVE/“Tomcat started”.
- Проверка порта: ss -ltnp | grep 8080 — ожидать слушающий процесс java/Tomcat.
- Доступ к Manager: открыть URL и залогиниться валидной учётной записью.
- Перезапуск и проверка устойчивости: несколько циклов stop/start, проверка логов.
Совместимость и миграция
- Если вы мигрируете с более старой версии Tomcat или Java, проверяйте совместимость JSP/servlet API и используемые библиотеки.
- Tomcat 8 требует соответствующей версии Java — для новых версий Tomcat используйте Java 8+.
Быстрые рекомендации по производительности
- Настройте параметры JVM (Xms/Xmx) в каталоге bin/setenv.sh или systemd unit.
- Разграничьте каталоги логов и временных файлов на отдельные диски, если это возможно.
Итог
Следуя этому руководству, вы установите и запустите Apache Tomcat на CentOS 7, настроите базовые переменные окружения, откроете порт в firewall и добавите администратора для доступа к Manager. Не забудьте заменить временные/демонстрационные пароли и настроить запуск через systemd для устойчивости.
Ссылки
- CentOS: http://www.centos.org/
- Tomcat: http://tomcat.apache.org/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента