Centos: Apache должен читать файлы, созданные Tomcat

471
Faabass

Попробовав множество разных решений, я пришел за помощью.

У меня есть веб-приложения в apache HTTPD, которые обслуживают интерфейс и Java-приложение в Tomcat на одном сервере.

Дело в том, что файлы, созданные Tomcat, недоступны для чтения Apache. Я имею в виду, что пользователи могут загружать файлы на сервер приложений, он отправляет файлы серверу Tomcat, который обрабатывает некоторую информацию и хранит файлы в общедоступной папке, чтобы Apache мог ее прочитать. Дело в том, что Apache получает 403 на эти файлы.

Если я запускаю chmod -R 777 в каталоге img / (где хранятся файлы), я получаю доступ к этим файлам, но каждый раз, когда я загружаю новый файл, HTTPD не имеет доступа к нему, пока я не выполню команду.

Я создал группу пользователей веб-вызовов и добавил к ней пользователей Tomcat и Apache.

Если я запускаю ln -l над этим каталогом, то получаю (для старых файлов)

drwsrwsrwx. 2 tomcat webusers 4096 Aug 16 08:50 337 

Но когда я загружаю новый файл, я получаю:

drwxr-s---. 2 tomcat webusers 4096 Aug 16 14:44 33f 

И если я пытаюсь открыть в браузере, я получаю

запрещено

У вас нет прав доступа к /assets/img/cars/brands/33f1d3f1-0e4b-4924-acc1-11e28bed08a8/c_h_1.jpg на этом сервере.

Я безуспешно пробовал многие команды chown -R / chmod -R 7777, не могли бы вы помочь мне сделать apache доступным для чтения файлов, созданных tomcat?

0
Apache используется для чего-то еще? stdunbar 6 лет назад 0
Нет ... Просто чтобы обслуживать эту страницу Faabass 6 лет назад 0

1 ответ на вопрос

1
stdunbar

Если Apache используется только как фронт для Tomcat, самый простой ответ - запустить дочерние процессы Apache от имени Tomcat. Я не уверен в вашей версии CentOS, но, глядя на некоторые вещи, похоже, что пакет Apache2 по умолчанию создаст файл конфигурации в /etc/httpd/conf/httpd.conf. Оттуда вы хотите найти параметр конфигурации User. В моем окружении у меня есть что-то вроде:

User www-user Group www 

Но, скорее всего, ваши настройки будут другими. Перейдите Userк вашему пользователю Tomcat, а Groupк той же группе, что и у пользователя Tomcat. Опять же, я не уверен в местонахождении файла конфигурации Apache - возможно, вам придется немного поискать его. Как только вы изменили этот параметр, вы должны перезапустить Apache, чтобы он вступил в силу.

Привет! Спасибо! это решает проблему ... Я меняю пользователя apache на tomcat и группу веб-пользователей ... Я не уверен, что это лучший ответ, потому что я не предпочитаю идею смены пользователей, но у меня заканчиваются варианты .. У меня была такая же ситуация в прошлом, и я мог заставить ее работать (я не помню, как). Так что, учитывая текущий сценарий, это решило мою проблему! Тогда спасибо! Faabass 6 лет назад 0

Похожие вопросы