(VPS + 1 user) Структура директорий для сайтов
«Обычно» панели на VPS создают следующую структуру папок:
домашняя директория пользователя = /var/www/user/data/
корневая директория сайта = ~/www/site.ru = /var/www/user/data/www/site.ru
логи сайтов = /var/www/httpd-logs/...
сертификаты = /var/www/httpd-cert/user/...
fcgi-враппер = var/www/php-bin/user/php + php.ini
Интересует, какую структуру папок выдерживают разработчики/админы в случае, когда:
— на VPS работают только свои (или одного заказчика) сайты и все сайты (скрипты) запускаются от одного пользователя?
— панели для управления сервером не используются и не будут использоваться
По стандарту FHS для сайтов должна использоваться папка /srv. Но на практике этот «стандарт», как правило, не соблюдают и в большинстве случае размещают сайты в /var/www/.
домашняя директория пользователя = /var/www/user/data/
корневая директория сайта = ~/www/site.ru = /var/www/user/data/www/site.ru
логи сайтов = /var/www/httpd-logs/...
сертификаты = /var/www/httpd-cert/user/...
fcgi-враппер = var/www/php-bin/user/php + php.ini
Интересует, какую структуру папок выдерживают разработчики/админы в случае, когда:
— на VPS работают только свои (или одного заказчика) сайты и все сайты (скрипты) запускаются от одного пользователя?
— панели для управления сервером не используются и не будут использоваться
По стандарту FHS для сайтов должна использоваться папка /srv. Но на практике этот «стандарт», как правило, не соблюдают и в большинстве случае размещают сайты в /var/www/.
Комментарии: 32
Я не сильно большой специалист в серверах, но есть простая мысль, что если все сайты работают под одним пользователем, то взлом одного сайта автоматически приравнивается к взлому всех сайтов, что не хорошо.
Не вижу смысла разделять — один или несколько сайтов. Все сервера настраиваю одинаково, каждый сайт на них работает от собственного пользователя. Даже если на сервере работают моих 2-3 сайта, не клиентских, все равно они работают от разных пользователей. Во-первых, это удобнее. Во-вторых — безопаснее.
Даже если на сервере работают моих 2-3 сайта, не клиентских, все равно они работают от разных пользователей. Во-первых, это удобнее.1. Т.е. в указанном случае (все сайты — ваши) сайты работают от разных пользователей (настройки веб-сервера и php), но при этом физически они расположены в одной директории — так?
2. И в какой директории у вас расположены сайты?
3. При этом какими являются домашние директории пользователей — /home/user/, /var/www/user/ или иные?
1,2) Каждый сайт располагается в своей директории: /var/www/user/www
3) /var/www/user
3) /var/www/user
4. А логи сайтов где расположены — в /var/www/user/httpd-logs?
5. И где лежат php.ini конкретного пользователя?
5. И где лежат php.ini конкретного пользователя?
4) /var/log/nginx
5) /etc/php5/fpm/pool.d/
У меня нет необходимости создавать собственную хостинг-площадку для разных клиентов, потому многие моменты упрощены. Если хочется правильно настроить сервер для публичного хостинга, то Василий ниже описал порядок действий.
Я серверы настраиваю по этой инструкции.
5) /etc/php5/fpm/pool.d/
У меня нет необходимости создавать собственную хостинг-площадку для разных клиентов, потому многие моменты упрощены. Если хочется правильно настроить сервер для публичного хостинга, то Василий ниже описал порядок действий.
Я серверы настраиваю по этой инструкции.
все сайты (скрипты) запускаются от одного пользователяТакого быть вообще не должно.
Для каждого сайта свой пользователь, вход через SSH/SFTP, сайт, БД в MySQL со своими паролями. Юзеры живут в /home.
Желательно еще запереть их в jail (chroot) только с определённым набором утилит. Тогда домашняя директория у них /jail/home, а из обычного /home для них символическая ссылка.
PHP процесс запускается от имени этого пользователя и работать может только в его директории. Там же ему назначена директория для времнных файлов tmp.
Директория proc монтируется с пользовательскими разрешениями, так что top, htop и подобные утилиты показывают только процессы самого юзера.
Еще неплохо настроить квоты потребления жёсткого диска, чтобы один юзер не мог завалить сервер мусором.
Собственно, примерно так всё и настроено на modhost.pro.
Юзеры живут в /home.Раньше (2013 год) в качестве домашней директории вы использовали /var/www/$USERNAME.
Сейчас — /home/$USERNAME?
— Apache по умолчанию тестовую страницу в /var/www/html/index.html, nginx — в свои директории (/usr/share/nginx/html/index.html)
Да, сейчас всё добро юзера живёт в его директории, включая сайт.
Можешь сделать тестовый сайт на modhost.pro и посмотреть всё изнутри через SSH.
Можешь сделать тестовый сайт на modhost.pro и посмотреть всё изнутри через SSH.
Да, сейчас всё добро юзера живёт в его директории, включая сайт.А с чем связан такой «переезд»? Сейчас, вроде, «все» хранят сайты в /var/www/ (и её же делают домашней).
С тем, что сайт — собственность пользователя и находится в его файлах.
Я же всё описал выше. На каждый сайт свой юзер и наоборот.
Я же всё описал выше. На каждый сайт свой юзер и наоборот.
При использовании в качестве корневой директории для сайта /var/www/user/ — её же делают и домашней директорией пользователя. Т.е. в этом случае сайт тоже будет лежать в домашней директории пользователя.
Т.е. я рассматриваю 2 варианта:
1. Домашняя директория /var/www/user/, корневая директория для сайтов = /var/www/user/www/
2. Домашняя директория /home/user/, корневая директория для сайтов = /home/user/www/
Раньше вы придерживались 1-го варианта, сейчас — 2-го. С чем связан «переезд» места размещения домашних директорий пользователей (с их сайтами)?
Т.е. я рассматриваю 2 варианта:
1. Домашняя директория /var/www/user/, корневая директория для сайтов = /var/www/user/www/
2. Домашняя директория /home/user/, корневая директория для сайтов = /home/user/www/
Раньше вы придерживались 1-го варианта, сейчас — 2-го. С чем связан «переезд» места размещения домашних директорий пользователей (с их сайтами)?
Раньше во 2м случае домашняя директория пользователя была так же в /home, а сайт в /var/www.
А еще раньше у меня тоже все сайты были от одного юзера и я даже использовал Apache2.
Ну а до этого я работал в Mandriva Linux мышкой. А еще раньше работал в Windows, а про Linux ничего и не знал.
В общем, всё течёт — всё меняется.
А еще раньше у меня тоже все сайты были от одного юзера и я даже использовал Apache2.
Ну а до этого я работал в Mandriva Linux мышкой. А еще раньше работал в Windows, а про Linux ничего и не знал.
В общем, всё течёт — всё меняется.
Раньше во 2м случае домашняя директория пользователя была так же в /home, а сайт в /var/www.Согласно вашему скрипту, домашняя директория тоже создавалась в /var/www/user/:
useradd $USERNAME -m -G sftp -s "/bin/false" -d "/var/www/$USERNAME"
Инициировал процедуру создания аккаунта. На почту пришло письмо — жму по ссылке «активировать аккаунт» — попадаю на страницу регистрации. Жму «вход», набираю логин/пароль — получаю сообщение, что нужно активировать учётную запись.
Попробовал в другом браузере. То же самое. при попытке входа — получаю сообщение:
Вы еще не активировали свой аккаунт, поэтому мы снова отправили вам ссылку на активацию.
В итоге получаю письмо с заголовком «Ссылка для авторизации», которое содержит… информацию о сбросе пароля. Который я не запрашивал.
В самый первый раз получил письмо с таким же заголовком, но которое содержало ссылку для активации учётной записи (переход по ссылке привёл на страницу создания нового аккаунта). Из другого браузераещё раз перешёл по ссылке — снова попадаю на страницу создания нового аккаунта…
Вы еще не активировали свой аккаунт, поэтому мы снова отправили вам ссылку на активацию.
В итоге получаю письмо с заголовком «Ссылка для авторизации», которое содержит… информацию о сбросе пароля. Который я не запрашивал.
В самый первый раз получил письмо с таким же заголовком, но которое содержало ссылку для активации учётной записи (переход по ссылке привёл на страницу создания нового аккаунта). Из другого браузераещё раз перешёл по ссылке — снова попадаю на страницу создания нового аккаунта…
Я даже как-то не удивлён, что уже 2 новых пользователя после тебя спокойно зарегистрировались, а ты не смог активировать email.
Активировал тебя вручную, заходи.
Активировал тебя вручную, заходи.
…
А конструктива не будет? Ещё раз: при переходе по ссылке «активировать учётную запись» открывается страница создания нового аккаунта modhost.pro/auth/register. При этом активации учётной записи не происходит. Ссылка такая:
modhost.pro/auth/register?action=auth%2Flogin&email=publ.n.a%2540mail.ru&hash=dc4c99f9a09ee447e48c1a8fb5412d05%3A12345678
Посмотрел в режиме отладки: на такой запрос получаю от вашего сервера 302 редирект на modhost.pro/auth/register.
modhost.pro/auth/register?action=auth%2Flogin&email=publ.n.a%2540mail.ru&hash=dc4c99f9a09ee447e48c1a8fb5412d05%3A12345678
Посмотрел в режиме отладки: на такой запрос получаю от вашего сервера 302 редирект на modhost.pro/auth/register.
Активировал тебя вручную, заходи.Тебе еще что-то нужно?
Вы меня обвиняете, что я не могу пройти по ссылке и активировать учётную запись. Я должен это проглотить?
Я тебя обвиняю только в крайней степени занудства.
Если бы я вспомнил тебя вчера — хрен бы я вообще что-то в этой теме писал. А так за год ты уже подзабылся, вот я и потерял бдительность.
Больше не повторится, удачи!
Если бы я вспомнил тебя вчера — хрен бы я вообще что-то в этой теме писал. А так за год ты уже подзабылся, вот я и потерял бдительность.
Больше не повторится, удачи!
Абсолютно не играет роль свои там или нет, если используется один юзер для всех при взломе одного сайта отымеют всех, это абсолютно не приемлимо. vk.com/debia
1. Домашняя директория /var/www/user/, корневая директория для сайтов = /var/www/user/www/
2. Домашняя директория /home/user/, корневая директория для сайтов = /home/user/www/
Согласно спецификации FHS, директория /home содержит домашние директории пользователей. Директория /var — часто меняющиеся данные (кэш, логи, временные файлы и пр.). В сабже мы имеем дело с файлами сайтов. Файлы сайтов — одновременно принадлежат пользователям (должны размещаться в домашней директории пользователя) и вместе с тем часто меняются.
Логическим фактором, влияющим на выбор места размещения сайтов, является преобладание более детерминированного определения (назначения) директории /home над /var. Т.е. в данном случае директорию /var нужно связывать не просто с "часто меняющимися данными", а "прочими часто меняющимися данными" (не соотнесёнными однозначно с другими директориями).
Формальным фактором, влияющим на выбор места размещения сайтов, является грубое нарушение стандарта в случае размещения домашней директории пользователя НЕ в /home.
Это моё обоснование необходимости размещения сайтов в директории /home/user/www/, а не в /var/www/user/www/. В Интернете не нашёл никаких доводов в пользу того или иного варианта. В итоге удалось сформировать свои собственные доводы. Теперь можно спать спокойно…
P.S. Поддиректория /var/www/ в спецификацию FHS не входит. При этом в отношении директории /var в спецификации указано:
Applications must generally not add directories to the top level of /var. Such directories should only be added if they have some system-wide implication, and in consultation with the FHS mailing list.
Таким образом, Apache, создавая файл /var/www/html/index.html в этой папке, нарушает спецификацию. Nginx — не нарушает (создаёт файл index.html в /usr/share/nginx/html/).
Зануда вернулся!
Ведь с 2015 года ничего не писал, а тут на тебе — такая важная тема про имена директорий сайтов.
Ведь с 2015 года ничего не писал, а тут на тебе — такая важная тема про имена директорий сайтов.
Теперь можно спать спокойно…Рад, что полегчало.
А вот на личности переходить не нужно. Выдерживайте нейтральный тон.
На всякий случай — ты на моём сайте, у меня в гостях.
И я советы по общению не спрашивал.
И я советы по общению не спрашивал.
а) данная интернет-площадка является не столько местом оказания техподдержки по определённой группе дополнений, сколько местом обсуждения всех вопросов, касающихся modx и не только (включая вопросы, входящие в цикл разворачивания сайтов на modx, нравится это кому бы то ни было или нет). О чём здесь же прямо и указано:
б) претендуя на "крупнейшее русскоязычное MODX сообщество", руководство данной площадки де факто берёт на себя обязательства по соблюдению общепринятых норм и правил приличия, предъявляемых к подобным ресурсам. В особенности, не допускаются переход на личности, оскорбление участников площадки и угрозы в их адрес.
в) как правило, каждый задаваемый вопрос или тема для обсуждения адресуется не одному или нескольким конкретным участникам, а всем участникам сообщества, компетентным в данном вопросе. При этом никто никого не заставляет принимать участие в открываемых вопросах и темах.
г) реплики типа "ты на моём сайте — что хочу, то и делаю" — мягко говоря, не соответствуют тому заявленному руководством уровню, который сформулирован в title-заголовке сайта ("крупнейшее русскоязычное MODX сообщество").
Здесь можно задавать различные вопросы про MODX, хостинги, базы данных, программирование и вообще — что угодно.
Вы можете задавать вопросы по любым темам, но имейте в виду, что инженеров-радиоэлектронщиков, специалистов по маркетингу и MODX Evolution в нашем сообществе очень мало.
б) претендуя на "крупнейшее русскоязычное MODX сообщество", руководство данной площадки де факто берёт на себя обязательства по соблюдению общепринятых норм и правил приличия, предъявляемых к подобным ресурсам. В особенности, не допускаются переход на личности, оскорбление участников площадки и угрозы в их адрес.
в) как правило, каждый задаваемый вопрос или тема для обсуждения адресуется не одному или нескольким конкретным участникам, а всем участникам сообщества, компетентным в данном вопросе. При этом никто никого не заставляет принимать участие в открываемых вопросах и темах.
г) реплики типа "ты на моём сайте — что хочу, то и делаю" — мягко говоря, не соответствуют тому заявленному руководством уровню, который сформулирован в title-заголовке сайта ("крупнейшее русскоязычное MODX сообщество").
Нет никакого руководства, есть один программист, который написал и ведёт этот сайт.
Крупнейшее русскоязычное MODX сообщество — это просто факт, счётчик посещаемости внизу. Найди более посещаемое русскоязычное MODX сообщество и я уберу эту надпись.
Своё мнение, будь добр, оставь при себе — мне оно не интересно. Если продолжишь в том же духе — отключу.
Спасибо за внимание.
Крупнейшее русскоязычное MODX сообщество — это просто факт, счётчик посещаемости внизу. Найди более посещаемое русскоязычное MODX сообщество и я уберу эту надпись.
Своё мнение, будь добр, оставь при себе — мне оно не интересно. Если продолжишь в том же духе — отключу.
Спасибо за внимание.
В каком таком «духе»? Я спросил, с чем связан переезд пользователей из /var/www/ в /home/www/. Вы сказали, что связан с желанием разместить пользователей в их домашней директории и что /var/www/user/ ранее не была домашней директорией. Я указал на ваши исходники, где /var/www/user/ создавалась в качестве домашней директории. В ответ вы перешли на личности и начали меня оскорблять. Я ответил, что переходить на личности и оскорблять меня не стоит. Вы стали мне угрожать. Поясните, что вы имеете ввиду под «продолжать в том же духе»?
Вот именно то, что ты сейчас делаешь — пытаешься выяснять отношения с администратором этого сайта.
То что ты зануда — не оскорбление, это факт. Достаточно почитать твои пространные обстоятельные комментарии, да и сам этот вопрос «в какой директории хранить сайты» с чтением RFC — он тоже занудный. Никто об этом не парится и на что это не влияет.
Ты же мне в ответ пытаешься предъявлять какие-то свои требования к моему сайту, навязывать своё видение, как и каким образом он должен работать.
Если тебя что-то здесь не устраивает, или не нравится как я себя веду — не ходи сюда, никаких проблем. Ходи в другие места, где тебя никто не называет занудой и не угрожает забанить.
Кстати говоря, я даже нашел комментарии, где уже обещал с тобой не общаться из-за твоей занудности: раз и два. Но ты целый год выжидал, и подловил меня — молодец!
Так что, это реально последнее предупреждение.
То что ты зануда — не оскорбление, это факт. Достаточно почитать твои пространные обстоятельные комментарии, да и сам этот вопрос «в какой директории хранить сайты» с чтением RFC — он тоже занудный. Никто об этом не парится и на что это не влияет.
Ты же мне в ответ пытаешься предъявлять какие-то свои требования к моему сайту, навязывать своё видение, как и каким образом он должен работать.
Если тебя что-то здесь не устраивает, или не нравится как я себя веду — не ходи сюда, никаких проблем. Ходи в другие места, где тебя никто не называет занудой и не угрожает забанить.
Кстати говоря, я даже нашел комментарии, где уже обещал с тобой не общаться из-за твоей занудности: раз и два. Но ты целый год выжидал, и подловил меня — молодец!
Так что, это реально последнее предупреждение.
Интересно, спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.