1

Поскольку я программист, а не администратор, я надеюсь, что вы можете мне помочь:

В настоящее время я пишу веб-приложение, которое использует (XML) файлы конфигурации, которые пользователь сможет также редактировать через само приложение (в веб-интерфейсе).
Таким образом, приложению необходимы права на чтение и запись для них.

И когда пакет приложения обновляется в системе, он, конечно, должен использовать уже существующие файлы конфигурации, которые уже использовала более старая версия. (Поскольку формат файлов конфигурации может незначительно меняться от версии к версии, процесс обновления также может изменять / обновлять файлы конфигурации)

Итак, где находится официальное (Debian) и строго официальное (LSB/FHS) место для этих файлов?

  • /etc/myWebApp/config/ (с символической WEBROOT/myWebApp/config -> /etc/myWebApp/config/)?
  • WEBROOT/myWebApp/config/?
  • где-нибудь еще?

И как организовать процесс обновления? Просто переименуйте старые файлы конфигурации в config_*.xml.160207 и переведите их содержимое в новый формат в config_*.xml? Или использовать каталог конфигурации для каждой версии?
Как следует обрабатывать понижение версии пакета (например, когда PPA создан для бета-тестеров и пользователь хочет отказаться от бета-тестирования и вернуться к стабильным версиям)? Автоматическое обратное переименование или оставить это пользователю, чтобы это исправить самому?

Примечание. В этом случае "пользователь" является администратором веб-приложения. Таким образом, он имеет все полномочия, чтобы изменить файлы конфигурации. (Но не обязательно много Linux знает как и часто не является root). Тогда "конечный пользователь" будет реальным пользователем приложения и его настроенного контента.

1 ответ1

2

Это зависит от вашего проекта. Файлы конфигурации могут находиться в /etc/ , /var/www , /opt , но их не должно быть в /usr/ , /sys/ , ...

Если файлы конфигурации находятся в /etc, менеджер пакетов спросит вас, что делать при обновлении.

Обычно файлы конфигурации из пакета имеют постфикс .sample (например, /etc/project/config.xml.sample). И пользователь должен скопировать его в config.xml и настроить. Таким образом, они не будут переписаны при обновлении.

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