Веб-каталоги пользователей
В системах с несколькими пользователями каждому пользователю можно разрешить размещать веб-сайт в своём домашнем каталоге с помощью директивы UserDir. Посетители URL http://example.com/~username/ получат содержимое из домашнего каталога пользователя «username», из подкаталога, указанного директивой UserDir.
Обратите внимание, что по умолчанию доступ к этим каталогам не включён. Чтобы включить доступ при использовании UserDir, раскомментируйте строку:
#Include conf/extra/httpd-userdir.conf
в файле конфигурации по умолчанию conf/httpd.conf и при необходимости измените файл httpd-userdir.conf либо добавьте соответствующие директивы в блок <Directory> в основном файле конфигурации.
Веб-каталоги пользователей
| Связанные модули | Связанные директивы |
|---|---|
Задание пути к файлам с помощью 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