Tuxfiles говорит следующее о структуре каталогов Linux:
/var
:Этот каталог содержит переменные данные, которые постоянно меняются во время работы системы.
FHS на/var
говорит следующее:
/var
содержит переменные файлы данных. Это включает в себя каталоги и файлы спула, административные данные и данные журналов, а также временные и временные файлы.
Затем они говорят, что такие вещи, как журналы, почта и спулер, помещаются в эту папку.
Традиционно При стандартной установке Apache или Nginx в Ubuntu Linux каталог будет размещен по адресу /var/www/
.
Мне не кажется идеальным местом для размещения каталога с файлами или другим содержимым, которое должно быть почти постоянным.
Почему это так часто вкладывают в /var
?
Если говорить более субъективно, то куда оно должно в идеале идти, в соответствии со структурой каталогов?
источник
/var/lib/www
было бы более подходящим .../srv
/var
предназначен для неисполняемых неконфигурируемых данных, не принадлежащих реальному пользователю, которые можно редактировать или изменять (например, они должны храниться на перезаписываемом томе)./var/lib
специально для того типа данных, который должен пережить перезагрузку и не быть удаленным процессом обслуживания, например,isc-dhcp-server
используется/var/lib
для хранения своей записи аренды DHCP. Так что это было бы логичным местом для файлов веб-сервера.Ответы:
Это на самом деле совсем не "традиционное" место. Традиционно все, что вы установили после ОС, вошло
/usr/local
, и на самом деле это «Классическая схема пути Apache» (их слова) по сей день. Долгое время это было/home/httpd
.То, что вы видите, это то, что Apache, который был настроен для конкретной ОС - будь то Red Hat Linux, Mac OS X, GNU и т. Д. - будет настраивать местоположение. Исходники Apache хорошо спроектированы для этого, фактически, если вы проследите значение ServerRoot в исходных файлах, вы увидите, что оно начинается в этом файле
config.layout
:Некоторые выдержки из этого файла покажут вам, что в расположении документа есть много разнообразия.
IIRC
/var/www
вошел в мою жизнь с выпуском Red Hat Linux 7.x 2000-2001 (не Red Hat Enterprise Linux). По всем причинам, которые вы цитируете выше, я думал, что это не имело большого смысла - но реальность такова, что в современную эпоху задействовано так много других инструментов и технологий, местоположение в любом случае перемещается.источник
Использование
/var/www
смущает только на первый взгляд.По данным FHS, данные веб-сервера должны отправляться на
/srv
. Это главное правило.Тем не менее, это также говорит о том, что решение о структуре
/srv
является исключительной ответственностью местного администратора! Поэтому пакеты не должны помещать что-либо в каталог/srv
, а корень документа по умолчанию не должен быть/srv
, потому что пакет (apache) не знает, что находится внутри/srv
и под ним. Может быть, хранилище Subversion с открытым текстом пароля и другие вещи, а также. Таким образом, должно быть значение по умолчанию за пределами/srv
. Что по умолчанию стало/var/www
./var/www
в основном заполнитель. Пакеты используют/usr/share
для статического содержимого HTML или/var/lib
для содержимого динамических переменных. Многие люди ошибочно полагали, что им следует вложить HTML-код/var/www
. Это проблема, потому что пакеты иногда используют это тоже. Так недавно они изобрели/var/www/html
пакеты. Надеюсь, что люди не начнут использовать это, потому что тогда им снова придется изобретать новый каталог ... и так далее.Резюме: вы должны соответственно использовать
/srv
и настраивать виртуальные хосты Apache.источник
Хотя я согласен с ответом Аконда, я думаю, что в нем есть более важный аспект. Большинство других местоположений (таких как
/usr/local
) обычно управляются системой (диспетчером пакетов)./var
обычно это файлы, которые не управляются менеджером пакетов (общесистемные «данные»).Я также думаю, что определение из FHS немного точнее (данные не должны быть «постоянно меняющимися»):
Однако FHS также указывает, что данные WWW должны быть в
/srv
источник
/usr/local
том, что он не управляется менеджером пакетов./srv/www
был классический путь на SuSE -системах (до SLES10) тоже.Причины в основном исторические, как говорили другие.
/var
использовался для системных данных, которые постоянно изменяются, например, файлы кэша, журналы, данные времени выполнения (например, файлы блокировки), хранилище почтового сервера, спулинг принтера и т. д. В основном для всего, что не может быть вставлено/usr
( потому что он содержит локальные данные), не являются сторонними программами, которые входят/opt
, и не являются отбрасываемыми и изменчивыми, поскольку они входят/tmp
.По мере развития Unix / Linux это стало грязным местом с мешаниной различных разнородных каталогов, вместе взятых. Там была тенденция в последние годы , чтобы переместить некоторые вещи там, в частности , содержание служил на машине (которая в настоящее время в соответствии с [ Filesystem Hierarchy Standard 2.3, с.15 ] должны идти в
/srv
, а не в/var/www
).Подобная вещь произошла с
/var/run
несколькими годами назад - благодаря сосредоточенным усилиям нескольких дистрибутивов, она была перемещена,/var/run
в/run
которую соединились функции ранее использовавшихся/var/lock
,/var/run
и/dev/shm
.источник
Судя по моему опыту (я веб-разработчик), содержание сайта далеко не стабильно. Даже в случае html-файлов (не говоря уже о динамически генерируемом контенте) они подвержены постоянным изменениям (поправкам, упущениям и т. Д.).
Так что, с моей точки зрения, они являются переменными. Таким образом, они идеально подходят в каталог / var, и в этом нет ничего плохого.
источник
/var
. Но я думаю, что это вопрос мнения и дебатов, а не твердых фактов.IIRC, в прежние времена, мы всегда монтировали
/var
как собственную файловую систему (отдельный диск или часть диска).Одна из причин этого, как заявили другие, заключается в том, что в этой файловой системе происходит интенсивное чтение / запись (logs / et al). Наличие отдельного диска / среза означает , что он может быть лучше настроен для этого типа I / O ( по сравнению с главным читать дальше
/
,/usr
и т.д ...).Другая причина заключается в том, что в те дни, если ваша система выходила из строя во время операции записи, была очень высокая вероятность того, что ваша корневая файловая система могла быть повреждена, оставляя ее в труднодоступном для восстановления состоянии. Таким образом, необходимость отделения от
/
.Со временем файловая система и технология дисков значительно улучшились, так что это гораздо менее вероятно.
источник
/var
является достойным выбором для нейтрального для пользователя «базового» местоположения для многопользовательского доступа, если у вас есть веб-сайт с несколькими виртуальными хостами, на котором разрешены FTP или другие загрузки, т.е. если вы веб-хостинг или аналогичный./home
возможно не оптимальное , так как плохие вещи могут случиться с другими учетными записями пользователей оболочки , если через бездумные или вредоносные загрузки пользователя к/home
пределу разделов (при условии традиционной настройки/var
,/home
и т.д. быть на отдельных разделы) это может повлиять на другие учетные записи пользователей.Конечно, я думаю, что
/srv
для этого лучше, но/var
они существуют дольше в традиции UNIX.источник
/home/http
?Я хотел бы добавить, что размещение «корневого» веб-узла в / usr вступает в конфликт с частью FHS, которая указывает на / usr как на общий доступ и только для чтения, поскольку разные веб-серверы, даже в одном и том же «кластере» может иметь разные файлы, которые содержат разные конфигурации, и это не делает его идеальным для / usr.
Кроме того, некоторые веб-приложения (MediaWiki и PhpBB, чтобы назвать их в верхней части моей головы) ожидают доступного для записи расположения под деревом веб-каталогов для загрузки вложений / медиа-файлов. Поэтому размещение веб-дерева в / usr может привести к конфликту, если вы захотите придерживаться определения только для чтения / usr.
источник
Веб-сервер Apache имеет веб-сайт по умолчанию в / var / www /, но он предлагает поместить другие веб-сайты в / srv /
Я заметил это на Ubuntu Server 14.04 LTS. Его файл apache2.conf по умолчанию содержит закомментированный блок:
источник