Перед рассказом:
У нас был vserver с доменом около 2004-2007 года с apache. Мой отец был владельцем, и я немного учился у его друга (он этим занимался). Я научился использовать linux через шпатлевку. Думаю, мы использовали там систему, которая называлась confixx. Там у нас была учетная запись пользователя linux, которая была «web1» в папке / home с папкой html, и все веб-материалы были там.
Сейчас я использую nginx, и если я читаю статьи, они всегда пишут о пользователях "/ var / www /" и "www-data". Я даже нашел статью о www / web1 www / web2. Для меня это имеет смысл, потому что иногда у меня даже возникают проблемы с разрешением. Пример: если я загружаю файл через php-скрипт, он не может переместить файл, потому что он принадлежит www-data (даже если web1 имеет группу www-data). Мне нужно было изменить конфигурацию php на это имя пользователя.
Как я делаю свою настройку:
В большинстве случаев vserver поставляется с сумасшедшим доменом, например vserver1234.yourniceserver.com. Я создаю субдомен или обычный домен, а корневой html находится под
Большую часть времени я использую свой vserver для тестирования собственной письменной файловой системы и WordPress-блога.
Итак, вопрос:
Изменить: я использую debian.
Если вы последуете FHS внимательно, то из этого вы можете расшифровать, что /srv/www/example.com
является наиболее подходящим из всех. Несмотря на то, что он наименее популярен.
Однако уместно, а может и не практично.
Если вы работаете с CentOS / RHEL или другими системами на основе Fedora и намереваетесь оставить SELinux включенным, тогда просто для сопоставления с существующими местоположениями контекста файлов /var/www/html/example.com
наиболее практично.
Так, например, если вы поместите экземпляр Wordpress в /var/www/html/example.com
, тогда он будет работать правильно без отключения SELinux, потому что файлы будут иметь правильные метки.
В системе RHEL 8 semanage fcontext -l | grep wp-
дает:
...
/var/www/html(/.*)?/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
...
Таким образом, стандартный SELinux «ожидает» файлов, помещенных в /var/www/html
(один сайт на сервер) или /var/www/html/example.com
(несколько сайтов на сервере).
Однако, как личное предпочтение, я бы все равно придерживался /srv/www/example.com
и добавьте правильную маркировку, например, semanage fcontext -a ...
Ваша конфигурация не определенно "неправильна" (например, "она не будет работать"), но определенно не идеальна; вы помещаете файлы и данные веб-сервера в домашний каталог пользователя.
Вроде как если бы в Windows вы поместили корень своего сайта в C:\Users\Someone\wwwroot
вместо того C:\inetpub\wwwroot
(или любое более подходящее место, например, специальный диск с данными).
Нет никакой практической разницы для одного небольшого веб-сайта, но никто не стал бы использовать такую настройку на реальном веб-сервере.