Spec-Zone.ru › Apache HTTP Server

Веб-каталоги пользователей

В системах с несколькими пользователями каждому пользователю можно разрешить размещать веб-сайт в своём домашнем каталоге с помощью директивы UserDir. Посетители URL http://example.com/~username/ получат содержимое из домашнего каталога пользователя «username», из подкаталога, указанного директивой UserDir.

Обратите внимание, что по умолчанию доступ к этим каталогам не включён. Чтобы включить доступ при использовании UserDir, раскомментируйте строку:

#Include conf/extra/httpd-userdir.conf

в файле конфигурации по умолчанию conf/httpd.conf и при необходимости измените файл httpd-userdir.conf либо добавьте соответствующие директивы в блок <Directory> в основном файле конфигурации.

Веб-каталоги пользователей

Связанные модули Связанные директивы
  • mod_userdir
  • UserDir
  • DirectoryMatch
  • AllowOverride

Задание пути к файлам с помощью UserDir

Директива UserDir указывает каталог, из которого загружается содержимое пользователя. Эта директива может иметь несколько различных форм.

Если указан путь, не начинающийся с косой черты, он считается путём к каталогу относительно домашнего каталога указанного пользователя. При следующей конфигурации:

UserDir public_html

URL http://example.com/~rbowen/file.html будет преобразован в путь к файлу /home/rbowen/public_html/file.html

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

UserDir /var/html

URL http://example.com/~rbowen/file.html будет преобразован в путь к файлу /var/html/rbowen/file.html

Если указанный путь содержит звёздочку (*), она будет заменена именем пользователя. При следующей конфигурации:

UserDir /var/www/*/docs

URL http://example.com/~rbowen/file.html будет преобразован в путь к файлу /var/www/rbowen/docs/file.html

Также можно задать несколько каталогов или путей к каталогам.

UserDir public_html /var/html

Для URL http://example.com/~rbowen/file.html Apache будет искать ~rbowen. Если он не будет найден, Apache будет искать rbowen в /var/html. Если он будет найден, указанный URL будет преобразован в путь к файлу /var/html/rbowen/file.html

Перенаправление на внешние URL

Директиву UserDir можно использовать для перенаправления запросов к пользовательским каталогам на внешние URL.

UserDir http://example.org/users/*/

В приведённом выше примере запрос к http://example.com/~bob/abc.html будет перенаправлен на http://example.org/users/bob/abc.html.

Ограничение доступа пользователей к этой функции

Используя синтаксис, описанный в документации UserDir, можно ограничить круг пользователей, которым разрешено пользоваться этой функцией:

UserDir disabled root jro fish

Приведённая выше конфигурация включает функцию для всех пользователей, кроме перечисленных в директиве disabled. Также можно отключить функцию для всех пользователей, кроме нескольких, используя конфигурацию следующего вида:

UserDir disabled
UserDir enabled rbowen krietz

Дополнительные примеры см. в документации UserDir.

Включение каталога CGI для каждого пользователя

Чтобы предоставить каждому пользователю собственный каталог cgi-bin, можно использовать директиву <Directory>, которая включает CGI для определённого подкаталога домашнего каталога пользователя.

<Directory "/home/*/public_html/cgi-bin/">
    Options ExecCGI
    SetHandler cgi-script
</Directory>

Если UserDir задано значение public_html, CGI-программу example.cgi можно будет загрузить из этого каталога по адресу:

http://example.com/~rbowen/cgi-bin/example.cgi

Разрешение пользователям изменять конфигурацию

Если вы хотите разрешить пользователям изменять конфигурацию сервера в своём веб-пространстве, им потребуется использовать файлы .htaccess для внесения этих изменений. Убедитесь, что для AllowOverride задано значение, достаточное для директив, изменение которых вы хотите разрешить пользователям. Подробнее о том, как это работает, см. в руководстве по .htaccess.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/howto/public_html.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API