Должны ли сайты жить в /var/ или /usr/ в соответствии с рекомендуемым использованием?

Согласно руководству по структуре каталогов Linux, /usr/ для файлов приложений, и /var/ для файлов, которые изменяются (я предполагаю, что это означает "файлы, которые принадлежат приложениям"). Это правильно?

Если это так, то я немного разрываюсь между использованием любого из них. Веб-сайт - это приложение (если оно, так сказать, динамическое), но в других случаях это просто набор файлов, используемых Apache.

WWW по умолчанию живет в /var/www/поэтому мы должны следовать примеру, используя /var/websites/ (или что-то подобное), или выберите /usr/websites/ так как они могут быть приложениями?

Это очень тривиальный вопрос, но, тем не менее, он меня беспокоит. В нашем случае я склоняюсь к /usr/web или что-то в этом роде, так как все наши сайты являются приложениями

Обновить:

Это для сайтов нашей компании; это не сервер общего хостинга, поэтому нам не нужно беспокоиться о разделении их в /home/ или что-нибудь в этом роде.

7 ответов

Решение

Согласно 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.)
Другие вопросы по тегам