Não é possível ativar os diretórios do usuário no Lighttpd

1

Estou usando o host baseado em Debian 7 e configure o PHP-FPM e o lighttpd junto com o rutorrent neste host. Eu quero usar diretórios de usuários em vez do caminho padrão / var / www.

Já corri o seguinte comando para ativar os diretórios do usuário. Mas não consigo usá-los.

[email protected]# lighty-enable-mod userdir

Mais uma coisa que deve ser escrita na seguinte linha do arquivo /etc/lighttpd/conf-available/10-userdir.conf; para que www: //x.x.x.x.//project aponte para / home / user / www / project? Eu também estou usando a autenticação aqui, então o user1 verá seu diretório home e o user2 verá seus diretórios home.

userdir.path         = "public_html"

/etc/lighttpd/lighttpd.conf está aqui:

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 aqui:

## 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" )
    
por Pradeep Gupta 30.09.2013 / 12:59

2 respostas

1

Isso realmente diz tudo:

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

Você provavelmente deseja userdir.path = "www" , mas não pode mapear http://x.x.x.x/project para /home/user/www/project , pois como saberia o nome de usuário? mod_userdir não foi projetado para funcionar com mod_auth . Portanto, no seu caso, um usuário bob usaria http://x.x.x.x/~bob/project para acessar ~bob/www/project .

Editar

O conteúdo não deve depender da autenticação (mod_auth); talvez um dia o usuário bob queira acesso a um projeto do usuário alice?

Dependendo da autorização está ok; como você dá ao usuário "autorização" para acessar certos dados, sua apresentação pode mudar. Dependendo da autorização, um usuário pode obter 403 Forbidden , acesso somente leitura, acesso de gravação (limitado), acesso de administrador completo, ...

Dito isto, você pode ser capaz de criar seu próprio mapeamento de caminho phyiscal com mod_magnet, que também pode incluir o nome de usuário do cabeçalho Authorization (veja também # 2495 ).

Dado que isso é strongmente desencorajado, não há uma maneira "fácil" de fazer isso. "Variáveis" na configuração são avaliadas na inicialização (verifique a saída de lighttpd -p -f ... ), não há "variáveis" no tempo de execução; somente alguns módulos fornecem manipulação especial de padrões (mod_rewrite, mod_redirect) usando grupos capturados de correspondências de expressões regulares.

    
por 01.10.2013 / 09:17
0

Eu sei que esse segmento é antigo, mas apenas para o log:

certifique-se de que a pasta public_html é legível pelo lighttpd!

chmod a+rx /home/$USER/public_html
    
por 16.12.2014 / 01:20

Tags