Questão Melhor localização de arquivos de configuração para o aplicativo da Web hospedado no Linux?


Como sou programador e não administrador, espero que você possa me ajudar:

Atualmente estou escrevendo um aplicativo da web que usa arquivos de configuração (XML) que o usuário também poderá editá-los através do aplicativo (em uma interface web).
Portanto, o aplicativo precisa ler e gravar as permissões neles.

E quando o pacote de aplicativos for atualizado no sistema, ele deve, é claro, usar os arquivos de configuração preexistentes que a versão mais antiga já estava usando. (Como o formato dos arquivos de configuração pode mudar um pouco de versão para versão, o processo de atualização também pode modificar / atualizar os arquivos de configuração)

Então, onde está o local oficial (Debian) e o local altamente oficial (LSB / FHS) para esses arquivos?

  • /etc/myWebApp/config/ (com um link simbólico WEBROOT/myWebApp/config -> /etc/myWebApp/config/)?
  • WEBROOT/myWebApp/config/?
  • Em outro lugar?

E como o processo de atualização deve ser organizado? Apenas renomeie os arquivos de configuração antigos para config_*.xml.160207 e traduzir seu conteúdo para o novo formato em config_*.xml? Ou use um diretório de configuração para cada versão?
Como deve ser tratado um downgrade do pacote (por exemplo, quando um PPA é criado para os testadores beta e o usuário deseja abandonar o teste beta e reverter para as versões estáveis)? Renomeação inversa automática ou deixar para o usuário consertá-lo por conta própria?

Nota: Um "usuário" é, neste caso, o administrador do aplicativo da web. Então ele tem todo o poder de mudar os arquivos de configuração. (Mas não é necessário muito Linux sabe como e muitas vezes não é root). O "usuário final" seria, então, o usuário real do aplicativo e seu conteúdo configurado.


1


origem




Respostas:


Depende do seu projeto. Arquivos de configuração podem estar em /etc/, /var/www, /opt, mas eles não deveriam estar em /usr/, /sys/...

Se os arquivos de configuração estiverem em / etc, o gerenciador de pacotes perguntará o que fazer na atualização.

Geralmente os arquivos de configuração do pacote tem postfix .sample (por exemplo. /etc/project/config.xml.sample). E o usuário deve copiá-lo para config.xml e personalizar. Desta forma, eles não serão reescritos na atualização.


2