Есть ли способ объявления виртуальных хостов на основе имени, но с использованием одних и тех же объявлений каталогов? Так, например, раздел Directory в обоих этих Vhosts одинаков, так что есть ли способ объявить его только один раз и использовать ли он обоими Vhosts? То же самое для раздела журнала ошибок. Есть ли способ объявить журнал ошибок только один раз? (Возможно, внутри Справочника?)
<VirtualHost *:80>
ServerName email.123456.com
DocumentRoot /var/www/mail
<Directory /var/www/mail>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mail/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/mail/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName email.123456.com
DocumentRoot /var/www/mail
<Directory /var/www/mail>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mail/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/mail/access.log combined
SSLEngine on
SSLCertificateFile /var/certs/123456/123456.com.crt
SSLCertificateKeyFile /var/certs/123456/123456.key
SSLCertificateChainFile /var/certs/123456/sf_bundle.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch MSIE [17-9] ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Если бы это был я, я бы сохранил общие конфигурации в «фрагментных» файлах .conf и использовал бы директиву Include в каждом VirtualHost или другом месте, которое разделяет конфигурации внутри этих фрагментов. т.е.
Include conf-fragments/error-log.conf
Include conf-fragments/Directory-mail.conf