我们将 VirtualHost 条目存储在站点的 SVN 存储库中的 (dev|staging|live).conf 文件中。
例如:
/var/www/vhosts/site1.com/live.conf
/var/www/vhosts/site2.com/live.conf
Run Code Online (Sandbox Code Playgroud)
能够自动包含它们会很方便,例如:Include /var/www/vhosts/*/live.conf
但这似乎不起作用。
我们用一个简单的 PHP 脚本解决了这个问题:
$vhosts = '';
foreach (glob('/var/www/vhosts/*/vhost/dev.conf') as $filename) {
$vhosts .= "\nInclude $filename";
}
file_put_contents('/var/www/vhosts/vhosts.conf', $vhosts);
Run Code Online (Sandbox Code Playgroud)
但是,我希望简化并让 Apache (2.2.3) 完成这项工作,而无需 PHP 步骤。
可能的?
apache2 不支持包含中的通配符。但是,您可以按以下方式进行安排:
Run Code Online (Sandbox Code Playgroud)rm -f /etc/apache2/myconfigs/* for i in $(find /var/www/vhosts/*/live.conf); do \ tempfn=$(echo $i|cut -d/ -f5-6|sed s,/,_,); \ ln -s $i /etc/apache2/myconfigs/$tempfn.conf \ done
注意:在剪切时,我使用 -f5-6 进行分隔符连接(以提供类似 site1.com_live.conf 符号链接名称的内容),但您可能必须根据自己的 fs 路径进行调整。注意:以上内容适用于bash,可能需要适应其他 shell。
| 归档时间: |
|
| 查看次数: |
3097 次 |
| 最近记录: |