(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. При этом какими являются домашние директории пользователей — /home/user/, /var/www/user/ или иные?
3) /var/www/user
5. И где лежат php.ini конкретного пользователя?
5) /etc/php5/fpm/pool.d/
У меня нет необходимости создавать собственную хостинг-площадку для разных клиентов, потому многие моменты упрощены. Если хочется правильно настроить сервер для публичного хостинга, то Василий ниже описал порядок действий.
Я серверы настраиваю по этой инструкции.
Для каждого сайта свой пользователь, вход через SSH/SFTP, сайт, БД в MySQL со своими паролями. Юзеры живут в /home.
Желательно еще запереть их в jail (chroot) только с определённым набором утилит. Тогда домашняя директория у них /jail/home, а из обычного /home для них символическая ссылка.
PHP процесс запускается от имени этого пользователя и работать может только в его директории. Там же ему назначена директория для времнных файлов tmp.
Директория proc монтируется с пользовательскими разрешениями, так что top, htop и подобные утилиты показывают только процессы самого юзера.
Еще неплохо настроить квоты потребления жёсткого диска, чтобы один юзер не мог завалить сервер мусором.
Собственно, примерно так всё и настроено на modhost.pro.
Сейчас — /home/$USERNAME?
— Apache по умолчанию тестовую страницу в /var/www/html/index.html, nginx — в свои директории (/usr/share/nginx/html/index.html)
Можешь сделать тестовый сайт на modhost.pro и посмотреть всё изнутри через SSH.
Я же всё описал выше. На каждый сайт свой юзер и наоборот.
Т.е. я рассматриваю 2 варианта:
1. Домашняя директория /var/www/user/, корневая директория для сайтов = /var/www/user/www/
2. Домашняя директория /home/user/, корневая директория для сайтов = /home/user/www/
Раньше вы придерживались 1-го варианта, сейчас — 2-го. С чем связан «переезд» места размещения домашних директорий пользователей (с их сайтами)?
А еще раньше у меня тоже все сайты были от одного юзера и я даже использовал Apache2.
Ну а до этого я работал в Mandriva Linux мышкой. А еще раньше работал в Windows, а про Linux ничего и не знал.
В общем, всё течёт — всё меняется.
Вы еще не активировали свой аккаунт, поэтому мы снова отправили вам ссылку на активацию.
В итоге получаю письмо с заголовком «Ссылка для авторизации», которое содержит… информацию о сбросе пароля. Который я не запрашивал.
В самый первый раз получил письмо с таким же заголовком, но которое содержало ссылку для активации учётной записи (переход по ссылке привёл на страницу создания нового аккаунта). Из другого браузераещё раз перешёл по ссылке — снова попадаю на страницу создания нового аккаунта…
Активировал тебя вручную, заходи.
modhost.pro/auth/register?action=auth%2Flogin&email=publ.n.a%2540mail.ru&hash=dc4c99f9a09ee447e48c1a8fb5412d05%3A12345678
Посмотрел в режиме отладки: на такой запрос получаю от вашего сервера 302 редирект на modhost.pro/auth/register.
Если бы я вспомнил тебя вчера — хрен бы я вообще что-то в этой теме писал. А так за год ты уже подзабылся, вот я и потерял бдительность.
Больше не повторится, удачи!
infoСогласно спецификации FHS, директория /home содержит домашние директории пользователей. Директория /var — часто меняющиеся данные (кэш, логи, временные файлы и пр.). В сабже мы имеем дело с файлами сайтов. Файлы сайтов — одновременно принадлежат пользователям (должны размещаться в домашней директории пользователя) и вместе с тем часто меняются.
Логическим фактором, влияющим на выбор места размещения сайтов, является преобладание более детерминированного определения (назначения) директории /home над /var. Т.е. в данном случае директорию /var нужно связывать не просто с "часто меняющимися данными", а "прочими часто меняющимися данными" (не соотнесёнными однозначно с другими директориями).
Формальным фактором, влияющим на выбор места размещения сайтов, является грубое нарушение стандарта в случае размещения домашней директории пользователя НЕ в /home.
Это моё обоснование необходимости размещения сайтов в директории /home/user/www/, а не в /var/www/user/www/. В Интернете не нашёл никаких доводов в пользу того или иного варианта. В итоге удалось сформировать свои собственные доводы. Теперь можно спать спокойно…
P.S. Поддиректория /var/www/ в спецификацию FHS не входит. При этом в отношении директории /var в спецификации указано:
Таким образом, Apache, создавая файл /var/www/html/index.html в этой папке, нарушает спецификацию. Nginx — не нарушает (создаёт файл index.html в /usr/share/nginx/html/).
Ведь с 2015 года ничего не писал, а тут на тебе — такая важная тема про имена директорий сайтов.
Рад, что полегчало.
И я советы по общению не спрашивал.
б) претендуя на "крупнейшее русскоязычное MODX сообщество", руководство данной площадки де факто берёт на себя обязательства по соблюдению общепринятых норм и правил приличия, предъявляемых к подобным ресурсам. В особенности, не допускаются переход на личности, оскорбление участников площадки и угрозы в их адрес.
в) как правило, каждый задаваемый вопрос или тема для обсуждения адресуется не одному или нескольким конкретным участникам, а всем участникам сообщества, компетентным в данном вопросе. При этом никто никого не заставляет принимать участие в открываемых вопросах и темах.
г) реплики типа "ты на моём сайте — что хочу, то и делаю" — мягко говоря, не соответствуют тому заявленному руководством уровню, который сформулирован в title-заголовке сайта ("крупнейшее русскоязычное MODX сообщество").
Крупнейшее русскоязычное MODX сообщество — это просто факт, счётчик посещаемости внизу. Найди более посещаемое русскоязычное MODX сообщество и я уберу эту надпись.
Своё мнение, будь добр, оставь при себе — мне оно не интересно. Если продолжишь в том же духе — отключу.
Спасибо за внимание.
То что ты зануда — не оскорбление, это факт. Достаточно почитать твои пространные обстоятельные комментарии, да и сам этот вопрос «в какой директории хранить сайты» с чтением RFC — он тоже занудный. Никто об этом не парится и на что это не влияет.
Ты же мне в ответ пытаешься предъявлять какие-то свои требования к моему сайту, навязывать своё видение, как и каким образом он должен работать.
Если тебя что-то здесь не устраивает, или не нравится как я себя веду — не ходи сюда, никаких проблем. Ходи в другие места, где тебя никто не называет занудой и не угрожает забанить.
Кстати говоря, я даже нашел комментарии, где уже обещал с тобой не общаться из-за твоей занудности: раз и два. Но ты целый год выжидал, и подловил меня — молодец!
Так что, это реально последнее предупреждение.