Назад | Перейти на главную страницу

За последние 10 лет я неправильно настроил свой веб-сервер?

Перед рассказом:
У нас был 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 (или любое более подходящее место, например, специальный диск с данными).

Нет никакой практической разницы для одного небольшого веб-сайта, но никто не стал бы использовать такую ​​настройку на реальном веб-сервере.