Acontece que os arquivos conf do apache2 contêm env vars com senhas e outros dados valiosos. Depois que o apache2 foi iniciado, excluí meus arquivos conf. Eu sei que para reiniciar terei que criar esses arquivos novamente.
Por quanto tempo o apache2 continuará funcionando conforme o esperado (mostrando meus sites)? O apache2 lê arquivos conf depois de iniciado?
Estou perguntando porque aconteceu que eu não reiniciei os servidores, mas eles mostram a página padrão do apache ubuntu
ps-aux | grep apache
www-data 27019 0.0 0.0 424372 12780 ? S 15:52 0:00 /usr/sbin/apache2 -k start
www-data 27963 0.0 0.0 424372 12800 ? S 16:46 0:00 /usr/sbin/apache2 -k start
www-data 27964 0.0 0.0 423968 12500 ? S 16:46 0:00 /usr/sbin/apache2 -k start
www-data 28159 0.0 0.0 423968 12424 ? S 16:59 0:00 /usr/sbin/apache2 -k start
www-data 28607 0.0 0.0 423968 11044 ? S 17:19 0:00 /usr/sbin/apache2 -k start
ubuntu 28688 0.0 0.0 12948 956 pts/0 R+ 17:23 0:00 grep --color=auto apache
root 28766 0.0 0.2 423888 34928 ? Ss 2018 06:14 /usr/sbin/apache2 -k start
UPD: eu sei que esta é uma maneira ruim de excluir arquivos conf.
Você pode excluir os arquivos assim que o apache for iniciado e ele continuará em execução até precisar ler os arquivos novamente (por exemplo, se você reiniciou o daemon).
Este parece ser um problema X->Y , e você realmente não declarou seu problema, apenas fez uma pergunta sobre o que você acredita ser uma solução. Não é uma solução aconselhável no entanto.
Como @djsmiley2k disse, o Apache continuará operando sem arquivos de configuração se os arquivos de configuração já existiam quando foi iniciado. E não, esta não é uma boa solução, como ele disse e você está ciente.
Dito isto, em resposta a saber se o apache2 funcionará ou não ... eu diria " não ".
A maioria dos sistemas reinicia automaticamente o Apache e/ou recarrega as configurações do Apache por vários motivos. Por exemplo, normalmente o Apache é reiniciado quando seus arquivos de log são alternados. Muitas dessas tarefas automatizadas são necessárias para a operação adequada de um servidor web baseado em Apache. Você também teria que automatizar a recriação dos arquivos de configuração ... o que significa que você terá que armazenar as senhas em outro lugar, ponto em que você derrotou o propósito de excluir os arquivos de configuração.
Além disso, há reinicializações não planejadas... como quando o apache2 falha. Por mais estável que seja, o Apache não é à prova de balas. O SOP deve ter algum método para observar o processo do Apache e reiniciá-lo automaticamente se ele travar ou travar. Muitos sistemas modernos usam o systemd para isso. Novamente, você pode adicionar a reconstrução automática dos arquivos de configuração ao processo de reinicialização ... mas isso ainda anula o propósito de excluir os arquivos de configuração para começar.
A solução real aqui é proteger seus dados confidenciais. As variáveis de ambiente devem ser definidas por qualquer ferramenta que você esteja usando para gerenciar o processo Apache. Systemd (por exemplo) fornece ferramentas para isso. As senhas usadas para autenticação local devem ser criptografadas e armazenadas em arquivos apenas legíveis/graváveis pelo usuário pelo qual o Apache é executado (ou seja,
root
) e especialmente não aquele que lê os arquivos como (ou seja,www-data
).Se você tiver senhas usadas para autenticação remota (ou seja, autenticação de seu servidor da Web para outro servidor ou serviço... como um banco de dados), considere substituí-las por chaves públicas/privadas pré-compartilhadas, como as usadas para autenticação ssh... para não mencionar a criptografia entre servidores remotos (sério, túneis ssh, coisas boas) ... novamente, armazenados em arquivos acessíveis apenas pelo usuário privilegiado que inicia o Apache. E, honestamente, o próprio Apache não deveria estar lidando com a tarefa de autenticação para outro serviço...
Embora eu concorde em não armazenar dados críticos diretamente dentro dos arquivos conf do apache, aqui está uma ideia diferente. Definitivamente, não senhas de qualquer tipo.
Você pode criar seu(s) próprio(s) arquivo(s) *.conf dentro da pasta conf.d. O Apache ainda os carregará.
Em seguida, migre todos os dados valiosos para um novo arquivo .conf. Agora você só tem 1 arquivo para excluir e restabelecer.
Assim, o apache ainda teria alguns dados de configuração disponíveis e não iniciaria como uma instalação em branco do apache. Obviamente, a pasta documentRoot é a mais importante.