Olá, preciso extrair cada VirtualHosts do meu httpd.conf para separar arquivos para facilitar o gerenciamento.
httpd.conf original.
..
<VirtualHost *:XXXX>
SuexecUserGroup user1 groupX
...
</VirtualHost>
<VirtualHost *:XXXY>
SuexecUserGroup user2 groupY
...
</VirtualHost>
<VirtualHost *:XXYY>
SuexecUserGroup user3 groupZ
...
</VirtualHost>
...
E eu gostaria de ter arquivos como: - XXXX_user1.conf contendo:
Listen XXXX
<VirtualHost *:XXXX>
SuexecUserGroup user1 groupX
...
</VirtualHost>
- XXXY_user2.conf contendo:
Listen XXXY
<VirtualHost *:XXXY>
SuexecUserGroup user2 groupY
...
</VirtualHost>
Parece um pouco complicado, mas tenho cerca de 500 para fazer manualmente ;(
Muito obrigado pelas respostas
Responder1
Experimente:
#!/usr/bin/gawk -f
BEGIN {
RS = "</VirtualHost>\n"
}
{
prefix = gensub("*:([^>]*)>", "\\1", "1", $2)
filename = prefix "_" $4 ".conf"
print "Listen " prefix "\n" $0 "\n" RS > filename
}
Salve-o em um arquivo chamado, talvez, "httpdsplit" e faça:
$ chmod u+x httpdsplit
$ ./httpdsplit httpd.conf
Responder2
Embora você não tenha mencionado isso, parece o Apache httpd.conf. Embora eu recomende a resposta existente que divide os arquivos, há outra opção.
Seo servidor apache é construído com mod_perl
esevocê conhece (ou está disposto a aprender) Perl, lembre-se de que ele mod_perl
se liga a todos os aspectos do Apache, incluindo configuração. Você poderia escrever a configuração com uma estrofe Perl e gerar a configuração do VirtualHost dentro do próprio Perl.