2012-04-08 2 views

ответ

1

Исходя из предположения, что ваша директива DocumentRoot используется synonomously с VirtualHost, можно разделить конфигурацию VirtualHosts на отдельные конф файлы, разместить их по отдельности в их корни документов, а затем включить их в каталог с широким включением директивы в общий, серверный conf. Ниже для примера:

Создать конф в следующей директории:

/etc/apache/sites-enabled/sites.conf 

добавить следующее

Include /data/www/sites/ 

Это будет включать в себя любой файл конф в каталоге выше и любой подкаталог

Для ведущего со следующими документами:

/data/www/sites/website-one 

Создать конф файл VirtualHost и поместить его в каталоге выше, например:

/data/www/sites/website-one/website-one.conf

И ваш файл конф будет содержать все информация о VirtualHost включая DocumentRoot например

<VirtualHost *:80> 
DocumentRoot /data/www/sites/website-one 
ServerName www.website-one.com 

# Other directives here 

</VirtualHost> 

Если DocumentRoot не существует, то файл конф не загружался и директива DocumentRoot никогда не выполняется. По соображениям безопасности будьте осторожны, чтобы ваши файлы conf не становились разборчивыми. Вероятно, это должно быть отключено на уровне сервера, но это то, о чем нужно знать. Наконец, приведенный выше шаблон означает, что любые плохие файлы conf в каталоге и подкаталогах /data/www/sites приведут к тому, что сервер не запустится.

0

Чтобы добавить к ответу Уильяма, есть уже каталог, который вы можете использовать:/etc/apache2/sites-available /. Конвенция предназначена для создания файла для каждого сайта, который вам нужен. Если у вас есть сайт с именем foo.example.com, вы должны создать файл foo.example.com в/etc/apache2/sites-available /, а затем добавить в конфигурацию VirtualHost для этого сайта в этом файле. Чтобы включить этот сайт (одноразовое), вы должны использовать команду a2ensite foo.example.com, а затем перезапустить apache.

Смежные вопросы