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


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

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

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

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

Обновить:

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


52
2018-01-14 08:04


Источник


Я не думаю, что вопрос таков, что тривиально; на самом деле это неплохо. Интересно. - Aron Rotteveel


Ответы:


Согласно FHS, /usr для shareable, read-only data - не там, где вы хотите разместить сайт. Здесь вы должны поместить свой код (например, Fedora делает это для Wordpress). См. Также веб-ресурсы руководство по упаковке для Fedora.

/var это «файлы с переменными данными», в том числе каталоги и файлы спула, данные администрирования и регистрации, а также временные и временные файлы ». - лучше, но все же не совсем правильно, - но многие системы будут использовать /var/www, поэтому, даже если вы ошибаетесь, чтобы поместить его там, вы в хорошей компании.

/srv предназначен для «специфических для сайта данных, которые обслуживаются этой системой». - что кажется хорошим совпадением, но гораздо реже, чем /var/www,

Другое общее место для размещения файлов сайта /home - путем создания специального пользователя, вызванного website или таким образом, затем размещение файлов внутри этого пользователя (например, /home/website).


58
2018-01-14 08:54



Ах, моя работа использует /srv - Как я никогда раньше этого не видел, я думал, что они созданы ими. Это вещь Redhat / CentOS? - Nick Bolton
По умолчанию установлено значение /var/www потому что дистрибутивы не могут трогать /srv; для системного администратора. Вот почему это «гораздо реже», а также правильно. - Michael Hampton♦


Взгляните на Стандарт иерархии файловой системы (Википедия). Я сам использую / srv / www / $ domain / {htdocs, logs, cgi-bin, ...}.


26
2018-01-14 08:09



Я тоже так делаю, но вместо «www» я всегда использую имя службы «httpd». Таким образом, у меня есть / srv / httpd / $ domain ... или / srv / smbd / sharename ... Вот так проще узнать, какая служба обслуживает файлы. Например, на некоторых системах у нас есть / srv / nginx / $ domain - Raffael Luthiger


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

Обновить:

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


9
2018-01-14 08:59





Окончательным руководством является Стандарт иерархии файловой системы в котором говорится, что /srv является надлежащим местом.


6
2018-01-14 08:36



Я так не читаю - или, по крайней мере, я читал это как двусмысленный в этом вопросе. Большинство веб-сайтов не обслуживаются просто by this system, они обслуживаются целым рядом систем; и два предложения, начиная с This setup will differ from host to host. предположите, что это не место для файлов, разделяемых на многих серверах. Это довольно вероятное место, хотя, безусловно, более уместно, чем /usr, и, возможно, лучше, чем /var - James Polley
Я не думаю, что FHS абсолютно определен. Re: (Из Википедии): Большинство дистрибутивов Linux следуют FHS и заявляют о своей собственной политике, чтобы поддерживать соответствие FHS. Однако подавляющее большинство (по состоянию на 2009 год) распределений, в том числе разработанных членами Группы свободных стандартов, полностью не соответствуют предлагаемому стандарту. - Michael Graff
Это хорошая вещь о стандартах - есть так много на выбор! :) - James Polley


Там, где они живут на диске, мало что имеет. Это то, где вы хотите их.

У меня есть символическая ссылка с / www на всех моих машинах, где они действительно живут, поэтому мне никогда не нужно задумываться от машины к машине. У некоторых старых машин есть / u0 и / u1 для пользовательских дисков, и я размещаю там веб-страницы. Некоторые из них / home установлены напрямую, поэтому они идут туда, но / www всегда указывает на нужное место.

Я также не ставил никакой конфигурации в / usr и не в / var. Он входит в / local (который, как вы догадались, является символьной ссылкой где-то в / u0 или / u1 обычно). Это упрощает создание резервных копий. Я просто создаю резервные копии пользовательских дисков.

Конечно, у меня есть главный дистрибутив для моей ОС по выбору, NetBSD. Я делаю систему так, как будто хочу ее на этой основной машине (на самом деле экземпляр xen) и rsync / usr. Делает мою жизнь легкой.


2
2018-01-14 08:15



Это нормально, если вы работаете с одним человеком или, возможно, даже с небольшой командой, которые тесно сотрудничают друг с другом и знакомы с слабостями друг друга - изучение «правильного» способа сделать это, вероятно, займет больше времени, чем просто делать Это. Если у вас большая операция, и они часто приносят новых людей на борт, их нужно ускорить с макетом, так как это займет много времени - придерживаясь (или, по крайней мере, близко) FHS собираемся сэкономить время с каждым новым человеком, которого вы приносите в команду. - James Polley
Когда вы используете 8 различных ОС, внутренние стандарты гораздо легче изучать, чем каждый из них - это сам по себе. - Michael Graff
@James Polley Сколько времени требуется, чтобы рассказать о новом прокате «мы вкладываем вещи в /path/we/chose«? - ceejayoz
@ceejayoz Если у вас более двух категорий «материала», гораздо проще сказать им «мы следуем за FHS», хотя для некоторых категорий «вещей» могут потребоваться некоторые дополнительные сведения. - tripleee


По моему мнению, НИКОГДА и НИКОГДА не ставьте никаких интернет-сервисов в общую системную зону.

Ваши интернет-сервисы (Apache / Tomcat / SSH и т. Д.) Являются входной дверью, а если вы поместите эти службы в свою Системную зону, вы будете потенциально уязвимы для некоторых атак.

Больше, чем если бы вы поместили ваши сервисы differents в безопасную зону песочницы, например, другую разделяемую секцию.

Вот пример структуры, которую вы могли бы использовать:

/ --> 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.)

2
2018-03-08 14:43



Не могли бы вы расширить «общую системную зону»? Это не термин, который я слышал раньше, и я не уверен, что вы имеете в виду. /srv/bin как представляется, нарушает FHS, в котором говорится, что /srv для данных, а не для двоичных файлов - James Polley
Хорошо. Общая системная зона - часть ОС, где хранятся все компоненты системы, такие как учетная запись, пароль, двоичные файлы администратора и библиотека. Я знаю, что моя установка полностью не учитывает FHS, но я могу полностью разделить ОС на две части. 1 ° / - система, которая полностью исправлена ​​(за исключением установки обновлений и администрирования) 2 ° / - приложения, данные и пользователи Homeland. Таким образом, если у вас возникнут проблемы с вашей системой или данными, вы не потеряете все данные. - Dr I
Понимаю. Это имеет смысл - именно поэтому большинство настольных компьютеров, например, /home на отдельном разделе - вы можете сдуть все,/home раздел и не беспокоиться о потере пользовательских данных. +1 для разделения данных. - James Polley


Веб-сервер Apache имеет веб-сайт по умолчанию / Var / WWW / но он предлагает разместить другие веб-сайты под / SRV /

Я заметил это на Ubuntu Server 14.04 LTS. Его файл apache2.conf по умолчанию содержит комментарий:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

1