Apache Tomcat-программа-контейнер сервлетов, написанная на языке Java и реализующая
спецификацию сервлетов и спецификацию JavaServer Pages (JSP), которые
являются стандартами для разработки веб-приложений на языке Java.
Если вы попробуете скачать и распаковать Tomcat, а потом еще его и запустить командой каталог_tomcat/bin/catalina.sh run, то уверен на 99%, что у вас все прекрасно заработает и вы сможете открыть страничку по адресу http://имя_сервера:8080. Написано на java - работает везде! Сказано - сделано!
Интересности
начинаются когда вы попробуете запустить tomcat на стандартном - 80
порту. Порты с номерами меньше 1024 являются в linux привилегированными,
открывать их может только пользователь root. А запускать веб-сервер
из-под root - это просто небезопасно.
Второй вопрос, который возникает - как запустить tomcat в качестве сервиса, т.е. чтобы он стартовал при старте системы.
Итак, пошаговая инструкция по установке Apache Tomcat:
Первое, что необходимо сделать это установить jdk, как это сделать написано здесь.
Лично я устанавливаю все приложения не входящие в репозиторий в каталог /opt(от слова optional). Поэтому распакуем скачанный файл и переместим туда каталог:
tar xvzf apache-tomcat-6.0.18.tar.gz sudo mv apache-tomcat-6.0.18 /opt
Создадим ссылку с именем /opt/apache-tomcat, для того, чтобы не переписывать скрипты при смене версии:
Cоздадим системного пользователя tomcat, под которым будет работать наш сервер:
sudo adduser --system tomcat
Сделаем хозяином каталога /opt/apache-tomcat пользователя tomcat:
sudo chown -RLv tomcat:nogroup /opt/apache-tomcat
Проводим пробный запуск:
sudo -u tomcat /opt/apache-tomcat/bin/catalina.sh run
Открываем браузер по адресу http://имя_сервера:8080. Если все сделано правильно, то увидим следующую картину:
Теперь необходимо заставить сервер запускаться на стандартных портах. Для этого необходимо отредактировать файл /opt/apache-tomcat/conf/server.xml Ищем следующий текст:
Теперь при запуске сервера будет выходить ошибка доступа:
java.net.BindException: Permission denied<null>:80 at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:502) at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) at org.apache.catalina.connector.Connector.initialize(Connector.java:1058) at org.apache.catalina.core.StandardService.initialize(StandardService.java:677) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795) at org.apache.catalina.startup.Catalina.load(Catalina.java:530) at org.apache.catalina.startup.Catalina.load(Catalina.java:550) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
Как уже говорилось - порты с номерами меньше 1024 может открывать только пользователь root.
Для запуска сервера под пользователем tomcat на стандартном порту необходимо установить утилиту jsvc:
sudo apt-get install jsvc -y
JSVC - утилита предназначенная, чтобы запускать java-программы как сервисы(демоны) операционной системы.
Далее в каталоге /etc/init.d создадим файл tomcat со следующим содержанием: