Стандартная дебиановская сборка апача предполагает, что DocumentRoot лежит в /var/www.
Ну и пусть себе лежит, место ничем не хуже других. Тем более, что если просто зайти на морду сайта, то срабатывает установленный по умолчанию RedirectMatch ^/$ /apache2-default/
Если сайтов становится больше одного, то каждому надо создавать свой подкаталог. Подкаталоги логично создавать там же - в /var/www/.
А дефолтовый сайт часто оставляют. Он ловит все запросы, не адресованные к другим явно определённым сайтам, и радостно говорит It works!. Ну и пусть говорит.
Вот тут-то и прячется несколько неожиданная засада. Остальные сайты лежат аккурат в подкаталогах /var/www. Который есть DocumentRoot от дефолтового сайта.
То есть, через него можно получить доступ к файлам всех остальных сайтов.
И что особенно радостно, по умолчанию для /var/www/ включены Indexes и FollowSymLinks, а никакой перл или PHP как раз не включены. Поэтому есть сильно ненулевая вероятность, что все скрипты будут отдаваться в виде исходников.
Мораль:
1) отключайте ненужную функциональность. даже если она на первый взгляд ничему не мешает. чисто из чувства паранойи.
2) не создавайте DocumentRoot одного сайта в подкаталоге другого. а дефолтовый сайт, если вы решили его оставить, лучше перенести на уровень пониже - например, в /var/www/default
3) блоки <Directory> по возможности располагайте на глобальном уровне, ВНЕ <VirtualHost>. и ограничения доступа приделывайте к Directory, а не к VirtualHost. в качестве дополнительной защиты от непредусмотренного доступа через другой виртуальный хост.
Написано сие по результатам внимательного рассматривания собственного сервера.
А у вас, случайно, не так? :)
Ну и пусть себе лежит, место ничем не хуже других. Тем более, что если просто зайти на морду сайта, то срабатывает установленный по умолчанию RedirectMatch ^/$ /apache2-default/
Если сайтов становится больше одного, то каждому надо создавать свой подкаталог. Подкаталоги логично создавать там же - в /var/www/.
А дефолтовый сайт часто оставляют. Он ловит все запросы, не адресованные к другим явно определённым сайтам, и радостно говорит It works!. Ну и пусть говорит.
Вот тут-то и прячется несколько неожиданная засада. Остальные сайты лежат аккурат в подкаталогах /var/www. Который есть DocumentRoot от дефолтового сайта.
То есть, через него можно получить доступ к файлам всех остальных сайтов.
И что особенно радостно, по умолчанию для /var/www/ включены Indexes и FollowSymLinks, а никакой перл или PHP как раз не включены. Поэтому есть сильно ненулевая вероятность, что все скрипты будут отдаваться в виде исходников.
Мораль:
1) отключайте ненужную функциональность. даже если она на первый взгляд ничему не мешает. чисто из чувства паранойи.
2) не создавайте DocumentRoot одного сайта в подкаталоге другого. а дефолтовый сайт, если вы решили его оставить, лучше перенести на уровень пониже - например, в /var/www/default
3) блоки <Directory> по возможности располагайте на глобальном уровне, ВНЕ <VirtualHost>. и ограничения доступа приделывайте к Directory, а не к VirtualHost. в качестве дополнительной защиты от непредусмотренного доступа через другой виртуальный хост.
Написано сие по результатам внимательного рассматривания собственного сервера.
А у вас, случайно, не так? :)
no subject
var происходит от слова variable, там хранятся относительно часто изменяемые файлы:
логи, базы данных, почтовые очереди, списки установленных пакетов и пр.
в отличие от /tmp (или /var/tmp), теряться при нормальных условиях он совсем не должен, поэтому хранить там нужные файлы вполне нормально.
А вот /usr часто меняться не должен, в некоторых системах он из соображений безопасности и повышенной устойчивости вообще монтируется в r/o. правда, в этом случае home надо делать отдельным, но он к usr вообще не относится, это отдельное место для личных файлов пользователей. хотя для хранения пользовательских сайтов он вполне подходит, с этим я согласен.
no subject
no subject
а сайты обычно на других машинах не нужны, но случаи разные бывают..
линуксовый hier говорит так:
/home On machines with home directories for users, these are usually beneath this directory, directly or not. The structure of this directory depends on local administration decisions.
/usr This directory is usually mounted from a separate partition. It should hold only sharable, read-only data, so that it can be mounted by various machines running Linux.
/var This directory contains files which may change in size, such as spool and log files.
В общем, /usr - неподходящее место для сайтов, кроме случая, когда они совершенно статические.
no subject
/usr/local — локальное
/home или /usr/home — домашние каталоги, на отдельном сервере :)
/var — временные данные для работы программ, типа кешей, спулов, логов и прочего, без чего теоретически всё должно запуститься.
no subject
В общем, я всегда рассматривал /var как помойку, в которой лежит всё, что программы нагенерили сами для своей кухни и бухгалтерии (book keeping), не интересной пользователю (в отличие от тех файлов, с которыми пользователь работает сам с помощью программ). Поэтому сайты и базы данных в моей голове туда никак не укладываются.