Назад | Перейти на главную страницу

Apache: использование одной и той же директивы Directory для нескольких виртуальных хостов

Вот образец записи VirtualHost

<VirtualHost *:80>
  ServerName domain.com
  ErrorLog logs/domain.com-error_log
  CustomLog logs/domain.com-access_log common
  DocumentRoot "/var/www/srs/web"
  DirectoryIndex index.php
  Alias /sf /usr/share/pear/data/symfony/web/sf
  <Directory "/usr/share/pear/data/symfony/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
  <Directory "/var/www/srs/web">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

Теперь у меня есть еще 6 доменов, которые нужно настроить таким образом. Все они будут использовать один DcoumentRoot, поэтому единственное, что мне нужно настроить, уникальное для каждого домена, - это значения ServerName и * Log. Поскольку я в основном копирую, когда дело доходит до такого рода вещей, что я подготовлен нужно просто скопировать этот блок 6 раз и изменить нужные мне биты.

Итак, могу ли я хотя бы вытащить записи Справочника и как-то их глобализировать?

Вытащите свои разделы каталога за пределы контейнеров VirtualHost, и он должен делать то, что вы хотите.

<VirtualHost *:80>
  ServerName domain.com
  ErrorLog logs/domain.com-error_log
  CustomLog logs/domain.com-access_log common
  DocumentRoot "/var/www/srs/web"
  DirectoryIndex index.php
  Alias /sf /usr/share/pear/data/symfony/web/sf
</VirtualHost>

<VirtualHost *:80>
  ServerName domain2.com
  ErrorLog logs/domain2.com-error_log
  CustomLog logs/domain2.com-access_log common
  DocumentRoot "/var/www/srs/web"
  DirectoryIndex index.php
  Alias /sf /usr/share/pear/data/symfony/web/sf
</VirtualHost>

<Directory "/usr/share/pear/data/symfony/web/sf">
  AllowOverride All
  Allow from All
</Directory>
<Directory "/var/www/srs/web">
  AllowOverride All
  Allow from All
</Directory>