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

У меня есть веб-приложения в 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?

1 ответ1

1

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

User www-user
Group www

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

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