Должны ли сайты жить в /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.)