Проблемы с разрешением с Tomcat

9

Я установил Tomcat 7 в соответствии с руководством по Ubuntu . Сервер работает и выдает мне: «Это работает!» страница на http://localhost:8080/.

Теперь я хочу настроить свое собственное веб-приложение, используя Netbeans. Я сгенерировал новый веб-проект с Java EE 6 и Tomcat 7. Пользователь /var/lib/tomcat7/conf/tomcat-users.xmlправильно настроил файл.

Когда я запускаю проект, все выглядит нормально, но когда я открываю браузер, он отображает ошибку 500 .

  • Выход Tomcat упоминает ошибки разрешения попытки доступа tomcat7/logsи
  • В журналах IDE пытается получить доступ tomcat7/conf.

Файлы разрешения:

lucio@lucio-pc:/$ ll /var/lib/tomcat7/logs
lrwxrwxrwx 1 root root 17 jul 24 18:07 /var/lib/tomcat7/logs -> ../../log/tomcat7/
lucio@lucio-pc:/$ ll /var/log/tomcat7/
total 136
drwxr-x---  2 tomcat7 adm      4096 ago 28 10:50 ./
drwxrwxr-x 15 root    syslog   4096 ago 28 09:29 ../
-rw-r--r--  1 tomcat7 tomcat7   800 ago 26 17:23 catalina.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7  5173 ago 27 21:59 catalina.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7 31285 ago 28 10:36 catalina.2014-08-28.log
-rw-r--r--  1 tomcat7 root    44192 ago 28 10:36 catalina.out
-rw-r--r--  1 tomcat7 tomcat7    45 ago 26 16:19 localhost.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7   433 ago 28 09:49 localhost.2014-08-28.log
-rw-r--r--  1 tomcat7 tomcat7  7435 ago 26 17:23 localhost_access_log.2014-08-26.txt
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost_access_log.2014-08-27.txt
-rw-r--r--  1 tomcat7 tomcat7 15186 ago 28 09:58 localhost_access_log.2014-08-28.txt

Я не понимаю, почему не может получить доступ к файлам, вы можете видеть, что у пользователя и группы tomcat7есть разрешения на файлы. Есть ли у пользователя JVM права на файлы?

Я также попытался изменить владельца файлов, как упомянуто здесь, но это не изменилось вообще.


/etc/default/tomcat7Файл имеет:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Так что я думаю, что он работает как tomcat7пользователь.


Я добавил своего пользователя в tomcat7группу:

sudo usermod -aG tomcat7 $USER

А затем перезапустил машину, но проблема не исчезла.

Lucio
источник
Работает ли tomcat как пользователь tomcat7?
Муру
Прошло слишком много времени с тех пор, как я использовал tomcat, но мне приходили в голову две вещи: разве вам не нужно быть в группе tomcat7, чтобы позволить программе получить доступ к журналу? Кроме того, кажется, что он действительно хочет получить доступ к временному файлу в /var/lib/tomcat7/temp; это существует? Это может быть та же проблема с разрешениями. Может быть, вам просто нужно добавить себя в группу tomcat7.
Марти Фрид
Кроме того, вам нужно сделать группу файлов доступной для записи, чтобы использовать мою идею. И есть больше информации здесь , что может помочь.
Марти Фрид
Кажется, что пользователь (человек или приложение), который запускает tomcat7, не имеет прав доступа к / var / lib / tomcat7 / и особенно к папке журналов.
MickyInTheSky

Ответы:

9

Я заметил две проблемы здесь.

Мне выделились две строки в журнале ошибок:

SEVERE: Cannot find specified temporary folder at /var/lib/tomcat7/temp  

а также:

java.io.FileNotFoundException: /var/lib/tomcat7/conf/tomcat-users.xml (Permission denied)

Проведя небольшую диагностику с Лучио , я выяснил, что tomcat-users.xmlфайл не принадлежит Tomcat, а вместо этого root. Измените разрешения на правильные, запустив команду:

sudo chown tomcat7:tomcat7 /var/lib/tomcat7/conf/tomcat-users.xml

Кроме того, создайте папку /var/lib/tomcat7/tempс разрешениями tomcat, например:

sudo mkdir /var/lib/tomcat7/temp && sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/temp

Наконец, исправление журналов должно быть сделано, сделав /var/lib/tomcat7/logsпринадлежащим tomcat7пользователю / группе. Также /var/log/tomcat7/должен принадлежать tomcat7пользователю AND группе.

Каз Вулф
источник
Для меня изменения прав доступа к tomcat-user.xmlфайлу было достаточно. Делать то же самое для логов не получалось, но приложение все равно работает :-)
Lucio