Estou tentando descobrir a melhor maneira de configurar aplicativos da Web de forma robusta no meu servidor Arch Linux + nginx. O jeito que eu costumava fazer isso antes era baixar e descompactar, por exemplo, a versão mais recente do dokuwiki / wordpress /srv/http/
, e configurá-lo manualmente através da edição de arquivos de configuração neste local, depois de alterar a propriedade do diretório para o nginx
usuário. Sempre que uma nova versão de um aplicativo da Web (uma sem um mecanismo de atualização interno) era lançada, eu repetia o procedimento, enquanto movia os arquivos de configuração / dados existentes do antigo para o novo local.
No entanto, certamente deve haver uma maneira melhor de manter (instalar, atualizar, fazer backup) desses aplicativos da Web, especialmente considerando pacman
que muitos deles estão em seus repositórios.
No entanto, tenho algumas preocupações com essa abordagem e algumas perguntas sobre as práticas recomendadas ao manter aplicativos da web em um servidor:
- os arquivos instalados a partir dos pacotes no Arch tendem a entrar
/usr/share/webapps/
. E os arquivos de dados / configuração? Eu os coloco lá também? Ou eu os vinculo de alguma forma? De alguma forma, copio aplicativos automaticamente de lá para/srv/http
depois de cada atualização? - supondo que eu faça um link simbólico desses diretórios ou configure o nginx para ler diretamente deles, e as permissões? Preciso executar manualmente
chown -R root:nginx /usr/share/webapps/new_webapp
após cada atualização / instalação? Ou suas propriedades são definidas automaticamente para algumwww
grupo? - Por último, mas não menos importante, e os arquivos de configuração desses aplicativos da web quando seus pacotes são atualizados? Eles não serão substituídos (na pior das hipóteses)
pacman
ou toneladas de.pacnew
arquivos serão criados (na melhor das hipóteses)?
Como os administradores da web normalmente resolvem esse problema? Que recursos existem para descrever as melhores práticas neste assunto? Eu já estou usando o puppet para gerenciar a configuração de vários pacotes, mas ainda me escapa a maneira "adequada" e fácil de instalar os aplicativos da web.
fonte
Respostas:
Para aplicativos instalados manualmente, considere fazer o download do repositório Git ou Hg, se houver. Você poderá atualizar para a versão mais recente (estável ou em desenvolvimento) com um comando e acompanhar suas próprias alterações de código, se acabar fazendo alguma. (E se alguém encontrar uma maneira de sujar seus arquivos com malware, isso também leva alguns minutos para limpar.)
Isso acelerou a atualização de nossas duas instalações do Moodle de 30 a 60 minutos (download; extração; backup; re-adição de módulos; reaplicação de patches locais) para apenas 1 a 3 minutos (git pull).
Como alternativa, você pode criar seus próprios pacotes para o pacman, que cuidará de remover os arquivos antigos e extrair novos no lugar certo.
Os pacotes também sempre incluem as informações de propriedade, o que geralmente não é um problema.
As atualizações manuais significam que a propriedade geralmente precisa ser redefinida, embora isso possa ser automatizado até certo ponto: com atualizações no local (por exemplo, Git / Hg ou rsync ou algo semelhante), você pode definir o modo "setgid" nos diretórios de dados do aplicativo da Web usando
chmod g+s
, e o grupo (a:nginx
parte) será automaticamente aplicado a todos os novos arquivos internos.No entanto, ao extrair um novo tarball, você sempre precisará corrigir os arquivos manualmente.
Para a localização principal,
/usr/share/webapps
está bem. Você nem sempre precisa de links simbólicos, geralmente é mais conveniente configurar o local diretamente no httpd.conf; por exemplo:Para configuração, depende do seu método de download. Os aplicativos da Web empacotados pelo sistema geralmente têm seus arquivos de configuração vinculados a / etc, principalmente para se ajustarem melhor à hierarquia do sistema de arquivos Linux.
Ao instalar a partir de um tarball, um link simbólico também é mais conveniente sempre que você precisar atualizar.
Com as atualizações baseadas em Git / Hg, suas edições são mantidas de qualquer maneira, portanto é uma questão de preferência.
fonte
/usr/share/webapps
diretório nos arquivos de configuração. Obrigado!