В соответствии с руководство по структуре каталогов Linux, /usr/
для файлов приложений, и /var/
предназначен для файлов, которые изменяются (я предполагаю, это означает «файлы, принадлежащие приложениям»). Это верно?
Если это так, то я немного разрываюсь между использованием того и другого. Веб-сайт - это приложение (если оно, так сказать, динамическое), но в других случаях это просто набор файлов, используемых Apache.
По умолчанию www dir находится в /var/www/
, поэтому следует ли нам последовать его примеру, используя /var/websites/
(или что-то подобное), или выберите /usr/websites/
поскольку они могли быть приложениями?
Это очень тривиальный вопрос, но, тем не менее, меня он беспокоит. В нашем случае я склоняюсь к /usr/web
или что-то в этом роде, поскольку все наши веб-сайты - это приложения.
Это для веб-сайтов нашей компании; это не сервер виртуального хостинга, поэтому нам не нужно беспокоиться о разделении их на /home/
или что-нибудь в этом роде.
Согласно FHS, /usr
для shareable, read-only data
- не там, где вы хотите разместить сайт. Здесь вы должны поместить свой код (например, Fedora делает это для Wordpress). См. Также веб-ресурсы руководство по упаковке для Fedora.
/var
это «файлы с переменными данными. Сюда входят каталоги и файлы спула, административные данные и данные журналов, а также временные и временные файлы». - лучше, но все же не совсем верно - но многие системы будут использовать /var/www
, так что даже если вы ошиблись, поместив его туда, вы находитесь в хорошей компании.
/srv
для "специфичных для сайта данных, которые обслуживаются этой системой". - что кажется хорошим совпадением, но встречается гораздо реже, чем /var/www
.
Другое распространенное место для размещения файлов сайта - это /home
- создав специального пользователя с именем website
или что-то подобное, а затем поместив файлы в домашний каталог этого пользователя (например, /home/website
).
Взгляните на Стандарт иерархии файловой системы (Википедия). Я сам использую / srv / web / $ domain / {htdocs, logs, cgi-bin, ...}.
Веб-сайты должны находиться в домашних каталогах пользователей. Это пользовательские данные, которые должны быть изолированы одним пользователем для каждого сайта, а динамический контент должен снова запускаться как отдельный пользователь с файлами, которые динамический контент должен читать и изменять при наличии соответствующих разрешений для этого.
Обновить:
Тот факт, что это не общий хостинг-сервер, не означает, что вам не следует применять передовые методы обеспечения безопасности и разделять независимые роли на их собственные зоны безопасности.
Полное руководство - это Стандарт иерархии файловой системы который говорит, что /srv
это подходящее место.
Где они живут на диске, не имеет значения. Это там, где вы их хотите.
У меня есть символическая ссылка с / www на всех моих машинах туда, где они действительно живут, так что мне никогда не придется гадать от машины к машине. На некоторых старых машинах есть / u0 и / u1 для пользовательских дисков, и я помещаю туда веб-файлы. У некоторых / home установлен напрямую, поэтому они идут туда, но / www всегда указывает в нужное место.
Я также не помещаю никаких настроек ни в / usr, ни в / var. Он идет в / local (который, как вы уже догадались, обычно является символической ссылкой где-то в / u0 или / u1). Это упрощает резервное копирование. Я просто делаю резервную копию пользовательских дисков.
Конечно, у меня есть главный сайт распространения для моей выбранной ОС, NetBSD. Я делаю систему такой, как хочу, на этой основной машине (на самом деле это экземпляр xen) и rsync / usr вокруг. Облегчает мою жизнь.
Веб-сервер Apache имеет веб-сайт по умолчанию под / var / www / но предлагается поместить другие веб-сайты в / srv /
Я заметил это на Ubuntu Server 14.04 LTS. Его файл apache2.conf по умолчанию содержит закомментированный блок:
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
По моему мнению, вам НИКОГДА и НИКОГДА не следует помещать какие-либо Интернет-службы в общую системную зону.
Ваши интернет-службы (Apache / Tomcat / SSH и т. Д.) Являются входной дверью, тогда, если вы поместите эти службы в свою системную зону, вы потенциально будете уязвимы для некоторых атак.
Больше, чем если бы вы поместили свои разные службы в безопасную зону песочницы, например, в другой отдельный раздел.
Вот пример структуры, которую вы можете использовать:
/ --> Root System --> On SDA1 --> Root and System security operator access only
|
| -->/usr /etc /var etc.
/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
|
|-->/srv/bin & /srv/dta
|
|-->/srv/bin/apache (or any other APPLICATION Binaries)
|-->/srv/dta/SQL (or any other APPLICATION Datas like a
database or web PHP files etc.)