안녕하세요. 보다 쉬운 관리를 위해 파일을 분리하기 위해 httpd.conf에서 각 VirtualHost를 추출해야 합니다.
원본 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처럼 보입니다. 파일을 분할하는 기존 답변을 권장하지만 다른 옵션이 있습니다.
만약에아파치 서버는 mod_perl
다음과 같이 구축되었습니다.만약에Perl을 알고 있거나 배울 의향이 있다면 Perl mod_perl
이 구성을 포함하여 Apache의 모든 측면과 결합된다는 것을 기억하십시오. Perl 스탠자로 구성을 작성하고 Perl 자체 내에서 VirtualHost 구성을 생성할 수 있습니다.