こんにちは。管理を容易にするために、httpd.conf から各 VirtualHosts を抽出して別々のファイルにする必要があります。
オリジナルの httpd.conf 。
..
<VirtualHost *:XXXX>
SuexecUserGroup user1 groupX
...
</VirtualHost>
<VirtualHost *:XXXY>
SuexecUserGroup user2 groupY
...
</VirtualHost>
<VirtualHost *:XXYY>
SuexecUserGroup user3 groupZ
...
</VirtualHost>
...
そして、次のようなファイルを用意したいと思います: - XXXX_user1.conf には次の内容が含まれます:
Listen XXXX
<VirtualHost *:XXXX>
SuexecUserGroup user1 groupX
...
</VirtualHost>
- XXXY_user2.conf の内容:
Listen XXXY
<VirtualHost *:XXXY>
SuexecUserGroup user2 groupY
...
</VirtualHost>
ちょっと複雑に聞こえますが、手作業でやらなければならないことが 500 個くらいあります ;(
回答ありがとうございます
答え1
これを試してみてください:
#!/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
}
これを「httpdsplit」という名前のファイルに保存し、次のようにします。
$ chmod u+x httpdsplit
$ ./httpdsplit httpd.conf
答え2
言及されていませんが、これは apache httpd.conf のようです。ファイルを分割する既存の回答をお勧めしますが、別のオプションもあります。
もしApacheサーバーはmod_perl
、もしPerl を知っている (または学ぶ意思がある) 場合は、mod_perl
config を含む Apache のすべての側面とバインドされることを覚えておいてください。Perl スタンザを使用して config を記述し、Perl 自体で VirtualHost config を生成することができます。