Я использую хост на базе 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