17

Когда я впервые начал программировать для Интернета и хотел создать новый проект, меня всегда учили создавать каталог в /var/www/ . Однако во многих уроках, которые я читаю, люди обычно создают каталог в /home/username/ .

Мне не нравится идея поместить его в /home/username/ .

Есть ли правильное место или нет, каковы преимущества / недостатки размещения его в определенных областях файловой системы?

4 ответа4

30

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

Стандарт иерархии файловой системы определяет это и предлагает вам следующее:

  • /var - место для размещения данных, которые изменяются во время нормальной работы, например, журналы и т. д. /var/www - это каталог по умолчанию для размещения веб-контента для Apache, но его использование вообще не стандартизировано, а просто "обычное" место Я бы сказал, потому что люди не очень часто меняют настройки по умолчанию.

  • /srv - этот каталог должен содержать данные, которые обслуживаются системой. Обычно это место, которое вы хотите. FHS объясняет:

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

    Одним из способов структурирования данных в /srv является протокол, например. ftp , rsync , www и cvs

    Итак, просто создайте каталог /srv/www и используйте его. Вы можете создавать подпапки для каждого виртуального хоста, который вы можете использовать на своей машине.

  • /home содержит файлы, которые действительно должны принадлежать только одному пользователю. Например, Apache позволяет использовать userdirs , так что вы можете получить доступ к веб-файлам пользователя через http://example.com/~username , и они обслуживаются из каталога public_html в доме пользователя.

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

По сути, /srv/www и /var/www - это каталоги, в которых вы должны создавать подкаталоги для любого веб-проекта, который вы хотите разместить. Затем вы можете определить различные разрешения для этих каталогов, чтобы позволить определенным пользователям или группам пользователей писать в них. Если у вас есть проекты для одного пользователя одновременно, используйте /home .

3

Что ж, вы можете помещать файлы куда угодно, если к ним есть доступ, но при этом загроможденные файловые системы будут головной болью, если кто-то придет позже.

/srv - наиболее логичный плюс, если вы следуете Стандарту Иерархии Файловой Системы, он пойдет сюда.

Если вы делаете несколько доменов, вы можете сделать /srv/domain1 /srv/domain2 т.д. И т.д., А затем подпапки внутри /ftp /www /tftp /logs /etc.etc.etc

Для меня это очень прочная структура, которую можно легко контролировать

Но, как администратор, вы можете делать все так, как вам хочется.

0

Просто чтобы добавить ... Использование /var /www является обычной практикой для экземпляров, обслуживающих один сайт, и, как указано, расположение Apache по умолчанию, тогда как использование /home /usr / was / является обычной практикой для серверов посредников или хостинга на нескольких сайтах, основанных на концепции пользователи == клиентов. И то, и другое - обычные практики, и ответ shlck - более эффективное использование целей файловой системы.

0

Веб-сервер Apache имеет веб-сайт по умолчанию в /var/www/ но он предлагает поместить другие веб-сайты в /srv/

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .