5

Я пытаюсь установить Tomcat 8 на Ubuntu 16.04. Это руководство, которым я следую:

https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04

Основная идея заключается в том, что вы должны создать дополнительного пользователя с именем "tomcat" с ограниченными правами для запуска tomcat. Когда я пытаюсь запустить последнюю команду для запуска в качестве службы (пробовал от имени пользователя root):

sudo systemctl start tomcat

Я получаю следующую ошибку:

Не удалось выполнить задание для tomcat.service, поскольку процесс управления завершился с кодом ошибки. Смотрите "systemctl status tomcat.service" и "journalctl -xe" для подробностей.

Проверка состояния systemctl:

tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) 
Process: 14 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=203/EXEC)

systemd[1]: Starting Apache Tomcat Web Application Container...
systemd[1]: tomcat.service: Control process exited, code=exited status=203
systemd[1]: Failed to start Apache Tomcat Web Application Container.
systemd[1]: tomcat.service: Unit entered failed state.
systemd[1]: tomcat.service: Failed with result 'exit-code'.

Это файл tomcat.service:

# /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.8.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
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Это права доступа к папке /tomcat /bin:

-rwxr-x--- 1 root root   1902 Jul  6 08:44 shutdown.sh
-rwxr-x--- 1 root root   1904 Jul  6 08:44 startup.sh
... 

Другие пользователи сообщают об этой же проблеме и предлагают предоставить пользователю "tomcat" право собственности на всю папку "tomcat". Но это, кажется, противоречит духу статьи (ограничение доступа для улучшения безопасности).

Я не уверен, что я что-то упустил в статье, касающейся разрешений?

Спасибо

5 ответов5

3

Просто удалите все, что вы сделали до сих пор. Затем:

sudo apt-get install tomcat8
sudo service tomcat8 start
0

Вы должны исполнить

cd /opt/tomcat/bin && sudo chmod +x catalina.sh

Tomcat должен запустить catalina.sh из автозагрузки

0

Следил за статьей и получил ту же ошибку, что и вы.

После:

chgrp -R tomcat bin chmod g+rwx bin chmod g+r bin/*

это сработало для меня.

Не нужно менять все файлы / папки в / opt / tomcat (только запуск, завершение работы и те, которые вызываются этими двумя - вот почему я использовал всю папку bin).

Кстати, вы также можете сделать apt-get install tomcat8 чтобы получить работающий сервер tomcat8 :) (это создает пользователя / группу tomcat8 с идентификатором ниже 1000).

0

В Centos 7.4 я перепробовал все пути, но не могу найти решение. Наконец-то я завел кота напрямую.

chmod +x /opt/tomcat/bin/*.sh
ln -s /opt/tomcat/bin/startup.sh /usr/bin/tomcatstart
ln -s /opt/tomcat/bin/shutdown.sh /usr/bin/tomcatshutdown
tomcatstart

Связал эти исполняемые файлы с /usr /bin, и я могу запустить его везде. Поместите код "tomcatstart" в /etc /environment и tomcat запустится при загрузке. Мой текущий файл среды:

export JAVA_HOME=/opt/jdk1.8.0_144
export JRE_HOME=/opt/jdk1.8.0_144/jre
export PATH=$PATH:/opt/jdk1.8.0_144/bin:/opt/jdk1.8.0_144/jre/bin
tomcatstart
0

У меня такая же проблема. В моем случае я использую Java 11. Проблема в том, что в этой новой версии Java папка JRE не включена. Удалите /jre в пути для JAVA_HOME, и он должен работать.

Я также выполнил все шаги в этом уроке и смог запустить tomcat без каких-либо других серьезных проблем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .