2013-09-10 4 views
1

Я управляю установкой httpd с несколькими работающими на ней сайтами, каждая из которых определена в собственной директиве <VirtualHost>. Существует несколько переменных конфигурации (большинство из них - от core, а также от php_flag/php_value), которые являются точно такими же для нескольких определенных сайтов.Обмен конфигурацией между несколькими VHosts

Я хотел бы иметь возможность определить набор конфигурации, который будет применяться одновременно к нескольким директивам <VirtualHost> (чтобы устранить избыточность и упростить обслуживание сервера).

Я рассмотрел использование <Directory>, однако многие из значений конфигурации, которые мне нужно установить, не могут быть изменены с <Directory>. Я также попытался определить другую <VirtualHost> раздел, содержащий все сайты, которые я хочу поделиться конфигурации в

<VirtualHost xx.xx.xx.xx:80 yy.yy.yy.yy:80> 
    ...config... 
</VirtualHost> 

, но это только приводит к

VirtualHost xx.xx.xx.xx:80 overlaps with VirtualHost yy.yy.yy.yy:80, the first has precedence, perhaps you need a NameVirtualHost directive 

Любая идея, как я могу добиться этого?

ответ

3

В документации apache это называется mass VirtualHost configuration.

Несколько решений существует:

  • mod_vhost_alias, с VirtualDocumentRoot инструкции, но это, как правило, слишком просто и управлением и другими вариантами, чем DocumentRoot и имя домена довольно сложно.
  • advanced mod_rewrite tricks, так как mod_rewrite - это швейцарский нож и может делать все, но все кажется довольно сложным, когда это делается с помощью mod_rewrite.
  • mod_macro - это модуль, который позволяет использовать бесконечный список макросов с параметрами, которые могут быть повторно использованы между Virtualhosts (например), поэтому вы можете добавить больше параметров, чем DocumentRoot и ServerName, и обмениваться файлами одиночных конфигураций между сервальными Vhosts.
Смежные вопросы