Apache: Verwenden derselben Directory-Direktive für mehrere virtuelle Hosts

8

Hier ist ein Beispiel für einen VirtualHost-Eintrag

<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>

Jetzt muss ich 6 weitere Domänen auf diese Weise einrichten. Sie werden alle einen einzigen DcoumentRoot gemeinsam nutzen. Das einzige, was ich einrichten muss, das pro Domäne eindeutig ist, sind die Werte ServerName und * Log. Da ich meistens ein Copy-Paster bin, wenn es um solche Sachen geht, bin ich bereit , diesen Block nur sechsmal zu kopieren und die Bits zu ändern, die ich brauche.

Kann ich also zumindest die Verzeichniseinträge herausziehen und sie irgendwie globalisieren?

Peter Bailey
quelle

Antworten:

11

Ziehen Sie Ihre Verzeichnis-Zeilengruppen aus Ihren VirtualHost-Containern heraus, und es sollte tun, was Sie wollen.

<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>
MikeyB
quelle