Я как бы застрял здесь, вероятно, из-за моего недостаточного опыта работы с пользователями и группами.
Я использую ElasticSearch в Laravel 5.2 и настраиваю файл синонимов, который по умолчанию находится в каталоге / и т.д. / ES / анализ. Я хочу обновлять его время от времени, поэтому я решил переместить его в каталог Laravel место хранения. После этого я снова открывал узел, чтобы мне не приходилось переиндексировать каждый раз, когда я добавляю синоним.
Моя проблема в том, что теперь я не могу добавить этот каталог как synonyms_path в настройки моего узла, я получаю сообщение об ошибке:
Вызвано: java.security.AccessControlException: доступ запрещен ("java.io.FilePermission" "/var/www/laravelproject/storage/app/elasticquent_synonyms.txt" "прочитано")
Наверное, потому что ES и Web-сервис запускаются разными пользователями или что-то в этом роде !? Я безуспешно пытался настроить разрешения. В любом случае весь место хранения в Laravel настроен на чтение для всех.
Я не могу получить к нему доступ и наоборот, не могу писать в / и т. д. / elasticsearch / анализ из моего веб-приложения. И в любом случае мне кажется, что иметь файл синонимов вне моего реального проекта - это неправильно.
Может ли кто-нибудь подсказать мне, что я могу сделать, чтобы обойти эту проблему?
Нет, к сожалению нет.
Я нашел для себя, постараюсь опубликовать решение как можно скорее
Не могли бы вы @beast caged, примите мой ответ, если считаете, что он решил вашу проблему или помог найти решение. Спасибо. Ваше здоровье!






Фактически, это проблема политики безопасности Java, чтобы решить ее, вам нужно найти, где находится vjm:
Обычно он должен находиться под: /usr/lib/jvm/java-8-oracle/jre/lib/security/java.policy
Отредактируйте файл с разрешением sudo, а затем добавьте эту конфигурацию гранта в конец файла политики.
grant {
permission java.io.FilePermission "/var/www/laravelproject/storage/app/elasticquent_synonyms.txt", "read,write";
};
Спасибо (+1) - на Mac файл находился в Macintosh HD / Library / Java / JavaVirtualMachines / jdk1.8.0_111.jdk / Contents / Home / jre / lib / security /java.policy. Не удалось отредактировать его, поскольку он сказал, что файл не может быть отредактирован (может быть обходной путь - не искал его - просто решил сохранить его в каталоге ES / config)
Вы нашли какое-нибудь решение?