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

Невозможно активировать пользовательские каталоги в Lighttpd

Я использую хост на базе Debian 7 и настраиваю PHP-FPM и lighttpd вместе с rutorrent на этом хосте. Я хочу использовать каталоги пользователей вместо пути по умолчанию / var / www.

Я уже запустил следующую команду для активации пользовательских каталогов, но не могу их использовать.

root@x.x.x.x# lighty-enable-mod userdir

Еще одно, что следует написать в следующей строке файла /etc/lighttpd/conf-available/10-userdir.conf; так что www: //x.x.x.x./project должен указывать на / home / user / www / project? Я также использую здесь аутентификацию, поэтому user1 увидит свой домашний каталог, а user2 увидит его домашние каталоги.

userdir.path         = "public_html"

/etc/lighttpd/lighttpd.conf находится здесь:

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
    "mod_rewrite",
    "mod_scgi",
)

server.document-root        = "/var/www"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80


index-file.names            = ( "index.php", "index.html", "index.lighttpd.html$
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/htm$
# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
dir-listing.activate = "disable" #disable, so we can enable per directory
dir-listing.hide-dotfiles = "enable"
dir-listing.exclude = ( "^\~.*$" )
dir-listing.show-readme = "disable"
dir-listing.show-header = "disable"
dir-listing.hide-readme-file = "disable"
dir-listing.hide-header-file = "disable"
dir-listing.set-footer = "SeedStorm"

10-userdir.conf здесь:

## The userdir module provides a simple way to link user-based directories into
## the global namespace of the webserver.
 ##
# /usr/share/doc/lighttpd/userdir.txt

server.modules      += ( "mod_userdir" )

## the subdirectory of a user's home dir which should be accessible
## under http://$host/~$user
userdir.path         = "public_html"

## The users whose home directories should not be accessible
userdir.exclude-user = ( "root", "postmaster" )

Это на самом деле все говорит:

## the subdirectory of a user's home dir which should be accessible
## under http://$host/~$user
userdir.path         = "public_html"

Ты наверное хочешь userdir.path = "www", но это не могу карта http://x.x.x.x/project к /home/user/www/project, потому что откуда ему знать имя пользователя? mod_userdir не был разработан для работы с mod_auth. Итак, в вашем случае пользователь bob использовал бы http://x.x.x.x/~bob/project получить доступ ~bob/www/project.

редактировать

Имхо контент не должен зависеть от аутентификации (mod_auth); возможно, однажды пользователь Боб захочет получить доступ к проекту от пользователя Алисы?

В зависимости от авторизации все в порядке; поскольку вы даете пользователю «разрешение» на доступ к определенным данным, их представление может измениться. В зависимости от авторизации пользователь может получить 403 Forbidden, доступ только для чтения, (ограниченный) доступ для записи, полный доступ администратора, ...

Тем не менее, вы можете создать собственное отображение физического пути с помощью mod_magnet, которое также может включать имя пользователя из Authorization заголовок (см. также # 2495).

Учитывая, что это категорически не рекомендуется, "простого" способа сделать это не существует. "Переменные" в конфигурации оцениваются при запуске (проверьте вывод из lighttpd -p -f ...), во время выполнения нет «переменных»; только некоторые модули предоставляют специальную обработку шаблонов (mod_rewrite, mod_redirect) с использованием захваченных групп из совпадений регулярных выражений.

Я знаю, что эта ветка старая, но только для журнала:

убедитесь, что public_html Папка доступна для чтения lighttpd!

chmod a+rx /home/$USER/public_html